如何在Centos中 为 Docker 配置镜像加速

大家好!我是编码小哥,欢迎关注,持续分享更多实用的编程经验和开发技巧,共同进步!

本文演示如何在Centos中 为 Docker 配置镜像加速,如何拉取和查看 Docker 镜像,如何创建、查看和启动容器,以及如何删除容器和镜像,带您快速熟悉 Docker 的基本操作。
一共有三个任务:
1.快速安装最新版的 Docker。这一步我们要卸载系统中旧版本的 Docker 然后装上最新版的 Docker 并启动。
2.运行 Docker 容器。这一步我们要学习如何快速运行一个容器,以及如何通过拉取镜像、创建容器来分步运行容器。
3.停止和删除 Docker 容器。这一步我们要学习如何停止正在运行的容器,如何删除容器及其镜像。

目录

1、卸载旧版本的 Docker

2、安装相关依赖

 3、安装最新版的 Docker

 4、启动 Docker

 5、运行 Docker 容器

 6、运行第一个容器

7、拉取镜像

 8、创建容器

9、查看容器

 10、启动容器

11、停止和删除 Docker 容器

12、删除指定镜像

13、删除镜像


 

1、卸载旧版本的 Docker

列出系统中已安装的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

2、安装相关依赖

安装 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

 3、安装最新版的 Docker

yum 安装 Docker:
yum install -y docker-ce docker-ce-cli containerd.io
验证 Docker 版本以确认安装成功:
docker version
如图所示,Docker 安装成功: 572a2e04994f4cbbafe6c32e2ed03df1.png

 4、启动 Docker

执行以下命令启动 Docker:
systemctl start docker
然后将 Docker 设置为开机启动:
systemctl enable docker
查看 Docker 运行状态:
service docker status
如图所示,Docker 正在运行:

1f73d5fa9a9c47c3a103873f0d78ecf0.png

 5、运行 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
重启完成后,镜像加速即配置成功。

 6、运行第一个容器

使用 docker run 命令可以直接拉取镜像并运行一个容器,例如:
docker run --name=hello hello-world
[root@VM-16-15-centos ~]# docker run --name=hello hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete 
Digest: sha256:94323f3e5e09a8b9515d74337010375a456c909543e1ff1538f5116d38ab3989
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

[root@VM-16-15-centos ~]# 

这行命令会直接拉取 hello-world 镜像,然后运行一个 hello 容器,可以通过以下命令查看该容器的进程:
docker ps -a
可以看到 hello 容器已经运行过了:

104a7491bccd4a76ab59981d5a98ba66.png

7、拉取镜像

我们也可以一步一步来运行容器。以 calibre-web 为例,先拉取 Docker 镜像:
docker pull johngong/calibre-web
查看现有的镜像:
docker images
如图所示,calibre-web 镜像拉取成功: 

97a4e61b88764d6ab96db2c973aac499.png

 8、创建容器

镜像拉取成功后,根据镜像创建容器:
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 是容器的镜像,这里也就是我们前面拉取的镜像

9、查看容器

使用如下命令可以查看现有的全部容器:
docker ps -a
如图所示,calibre-web 容器创建成功:

17ea92e824ee4caea855ecd960834054.png

与 docker run 不同的是,docker create 创建出来的容器不会直接运行。可以查看下运行中的容器进程:
docker ps
可以看到,没有任何容器在运行:

fa4f4ec693104bed8f9ed0890fda40a4.png

 10、启动容器

使用以下命令启动刚才创建好的容器:
docker start calibre-web
查看容器进程:
docker ps
可以看到,calibre-web 容器正在运行:

68f2ffb125454518bc2e9b0c40ccf168.png

 

11、停止和删除 Docker 容器

停止容器
要停止正在运行的容器有两种方法。一种是 docker stop,例如:
docker stop calibre-web
使用 docker ps 命令可以看到,正在运行的容器中已经没有 calibre-web 了:

56cd4fc658d941b5992ad97312324ccd.png

另一种方法是 docker kill,例如:
docker kill calibre-web
这两种方法的区别在于,docker stop 会给时间让容器保存最后的运行状态,而 docker kill 则会直接关闭容器。

删除终止状态的容器
使用 docker rm 命令可以删除指定的容器,例如:
docker rm hello
查看所有容器:
docker ps -a
已经看不到 hello 容器了:

f6b216cfb10241ed9e992a53aba18391.png

删除运行状态的容器
我们先重新运行 calibre-web 容器: 
docker start calibre-web
这时候我们用 docker rm 删除该容器:
docker rm calibre-web
命令行会报错:

2bd1c04c6daa4ee0be5b43c8ec9ccde2.png

要删除运行状态的容器,需要带上 -f 选项:
docker rm -f calibre-web
正在运行的 calibre-web 会被强制停止并删除。
[root@VM-16-15-centos ~]# docker rm calibre-web -f

12、删除指定镜像

使用 docker rmi 命令可以删除指定的镜像,例如:
docker rmi hello-world
查看现有镜像:
docker images
已经看不到 hello-world 镜像了: 

88b1b13ec2cd41129fd742722d7f2c45.png

13、删除镜像

[root@VM-16-15-centos ~]# docker images -q
b0b1506305fe
[root@VM-16-15-centos ~]# docker rmi `docker images -q`
Untagged: johngong/calibre-web:latest
Untagged: johngong/calibre-web@sha256:1b68274f5636c37cae71abc2870bb5298523c763fc59fafc9b97763128b4b906
Deleted: sha256:b0b1506305febf6951c0b921e69291913b46f3e221ad2d791ccbd016fed1481c
Deleted: sha256:59c1b0f1ed35b7d9050dbb6c3a1da6a4e3aeac189b1c2ced3a82c1832348e795
Deleted: sha256:4676259627db5e32e00d8eb7f38f60fad21c492ab4caaa5d54b2c819ceae4bd6
Deleted: sha256:d4fc045c9e3a848011de66f34b81f052d4f2c15a17bb196d637e526349601820

删除所有镜像
我们可以通过 docker rmi 跟镜像 ID 来删除指定的镜像。而获取所有镜像 ID 的命令是:
docker images -q
如图所示,命令行列出了剩余所有镜像的 ID:

304c0b1805a146869c4d379cc9ca8d2c.png

我们可以用这些 ID 一次性删除所有镜像:
docker rmi `docker images -q`
现在用 docker images 已经看不到镜像了:

a0ddb046e9064c1fbb4339077588e703.png

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编码小哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值