created at 2023/08/05 03:53:16
updated at 2023/08/05 04:53:50
shell
# 列出已经安装的docker
yum list installed | grep docker
# 卸载已经安装的docker包
yum -y remove docker-ce-cli.x86_64
yum -y remove docker-ce.x86_64
yum -y remove containerd.io
# 安装docker相关依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加安装docker的yum的源
yum-config-manager --add-repo https://mirrors.cloud.tencent.com/docker-ce/linux/centos/docker-ce.repo
# 安装docker
yum install -y docker-ce docker-ce-cli containerd.io
# 验证docKer
docker version
# 启动docker
systemctl start docker
# 设置docker自启动
systemctl enable docker
# 查看docker运行状态
service docker status
# 创建docker配置目录
mkdir -p /etc/docker
# 配置docker镜像加速源
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
EOF
# 重启守护进程并重启docker
systemctl daemon-reload && systemctl restart docker
# 拉取hello-world镜像,并运行一个hello容器
docker run --name=hello hello-world
# 查看该容器进程
docker ps -a
# 拉取一个远程镜像
docker pull johngong/calibre-web
# 查看现有镜像
docker images
# 根据镜像创建容器
docker create --name=calibre-web -p 80:8083 -v /data/calibre-web/library:/library -e WEBLANGUAGE=zh_CN johngong/calibre-web
##docker create 是创建容器的命令
##--name=calibre-web 表示创建的容器的名称
##-p 80:8083 表示该容器将 80 端口映射到 8083 端口
##-v /data/calibre-web/librery:/libray 表示该容器将 /data/calibre-web/library 目录映射为 /library 目录
##-e WEBLANGUAGE=zh_CN 表示该容器定义了一个变量,变量名是 WEBLANGUAGE,变量值是 zh_CN
##johngong/calibre-web 是容器的镜像,也就是前面拉取的镜像
# 与 docker run 不同的是,docker create 创建出来的容器不会直接运行。
# 查看运行中的容器
docker ps
# 运行create的容器
docker start calibre-web
# 再次查看已经跑起来了
# 停止容器docker stop/kill ,区别于docker stop 会给时间让容器保存最后的运行状态,而 docker kill 则会直接关闭容器。
docker stop calibre-web
docker kill calibre-web
# 删除终止状态的容器
docker rm hello
# 删除运行状态的容器
docker start calibre-web && docker rm calibre-web #报错
# 强制删除运行状态的容器
docker rm -f calibre-web
# 删除指定镜像
docker rmi hello-world
# 获取所有镜像的id
docker images -q
# 删除所有镜像
docker rmi `docker images -q`