首先,列出系统中以安装的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-repohttps://mirrors.cloud.tencent.com/docker-ce/linux/centos/docker-ce.repo
然后安装最新版的docker
yun安装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容器
配置镜像加速
创建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
重启完成后,镜像加速即配置成功。
然后运行第一个容器
使用 docker run 命令可以直接拉取镜像并运行一个容器,例如:docker run --name=hello hello-world
这行命令会直接拉取 hello-world 镜像,然后运行一个 hello 容器,可以通过以下命令查看该容器的进程:docker ps -a
可以看到 hello 容器已经运行过了:
拉取镜像
我们也可以一步一步来运行容器。以 calibre-web 为例,先拉取 Docker 镜像:docker pull johngong/calibre-web
查看现有的镜像:docker images
calibre-web 镜像拉取成功:
创建容器
镜像拉取成功后,根据镜像创建容器:docker create --name=calibre-web -p 80:8083 -v/data/calibre-web/library:/library -e WEBLANGUAGE=ZH_CN johngong/calibre-web
其中:
a.docker create是创建容器的命令
b. --name=calibre-web表示创建容器的名称
c.-p 80:8083表示该容器80端口映射到8083端口
d.-v/data/calibre-web/librery:/libray表示该容器将/data/calibre-web/library目录映射为/library 目录
e. -e WEBLANGUAGE=zh_CN表示该容器定义了一个变量,变量名是WEBLANGUAGE,变量值是zh_cn
f.johngong/calibre-web是容器的镜像,这里也就是我们前面拉取的镜像
查看容器
使用如下命令可以查看现有的全部容器:docker ps -a
如图所示,calibre-web容器创建成功:
与docker run 不同的是,docker create 创建出来的容器不会直接运行。可以查看下运行中的容器进程:docker ps
可以看到,没有任何容器在运行:
启动容器
使用以下命令启动刚创建好的容器:docker start calibre-web
查看容器进程:docker ps
可以看到,calibre-web容器正在运行:
停止和删除docker容器
停止容器
要停止正在运行的容器有两种方法。一种是docker stop,例如:docker stop calibre-web
使用docker ps 命令可以看到,正在运行的容器中已经没有calibre-web 了:
另一种方法是docker kill,例如:docker kill calibre-web
这两种方法的区别在于,docker stop 会给时间让容器保存最后的运行状态,而docker kill 则会直接关闭容器
删除终止状态的容器
使用docker rm命令可以删除指定容器,例如:docker re hello
查看所有容器:docker ps -a
已经看不到hello容器了:
删除运行状态的容器
我们先重新运行calibre-web容器:docker start calibre-web
这时候我们用docker rm 删除该容器:docker rm calibre-web
命令行会报错:
要删除运行状态的容器,需要带上-f选项:docker rm -f calibre-web
正在运行的calibre-web会被强制停止并删除
删除指定镜像
使用docker rmi命令可以删除指定的镜像,例如:docker rmi hello-world
查看现有镜像:docker images
已经看不到hello-world镜像了:
删除所有镜像
我们可以通过docker rmi 跟镜像id来删除指定的镜像。而获取所有的镜像id的命令是:docker images -q
如图所示,命令行列出了剩余所有镜像的id:
我们可以用这些id一次性删除所有镜像:docker rmi `docker images -q`