Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植且自足的容器中,然后发布到任何的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker在合并镜像时默认使用的是Docker Hub的地址,但在GFW之下,Docker Hub在不使用代理加速的情况下,虽然还能使用,但是使用镜像加速会好很多,国内也有很多docker镜像,有些是有限制的。总的来说还是阿里云镜像好用。
在本教程中,我们将说明如何配置Docker镜像。包括在Linux/Windows/Mac配置Docker阿里云镜像,申请帐号成为阿里云开发者获取阿里云镜像地址,重启docker服务,验证docker服务的配置。
申请帐号成为开发者
你也可以直接使用这个地址https://0bbqupb9.mirror.aliyuncs.com
作为阿里云镜像地址,虽然我不知道多个人用同一个阿里云镜像地址会怎么样,当然你也可以申请自己的帐号,点击这里去申请,成为开发者后可以在用户中心看到自己镜像地址。
在本教程中,我们将使用自己申请的镜像地址作为示例。我们使用的阿里云镜像地址是https://0bbqupb9.mirror.aliyuncs.com
。
Linux配置Docker镜像
Docker是C/S的项目架构,分为client客户端docker命令,server服务器是dockerd。docekrd服务使用Systemd作为系统服务运行,dockerd服务的配置是/etc/docker/daemon.json
。该文件允许我们配置Docker拉去取/合并镜像时使用的镜像地址。
使用你喜欢的编辑器打开/创建文件/etc/docker/daemon.json
,在本教程中,我们将使用vim编辑器打开文件。你将执行以下命令:
sudo vim /etc/docker/daemon.json
复制粘帖以下文件内到/etc/docker/daemon.json
文件:
{
"registry-mirrors": [
"https://0bbqupb9.mirror.aliyuncs.com"
]
}
退出并保存文件。
如果你只是仅配置Docker的镜像地址,可以直接执行以下命令。该命令将使用sh创建一个子shell然后运行echo命令并通过重定向操作符>
重定向到docker服务的配置文件/etc/docker/daemon.json
中:
sudo sh -c 'echo {\"registry-mirrors\": [\"https://0bbqupb9.mirror.aliyuncs.com\"]} > /etc/docker/daemon.json'
写入docker服务的配置文件后,我们需要重启docker服务进程dockerd。你将运行以下命令重启dockerd服务
sudo systemctl restart docker
要验证是否正确配置阿里云的Docker镜像。我们将打印Docker的配置信息,然后使用grep过滤registry-mirrors
选项,以验证是否配置正确。运行以下命令验证配置是否已经加载到dockerd的服务中:
docker info | grep aliyun
你将看到以下输出,如输出中包含阿里云的镜像地址https://0bbqupb9.mirror.aliyuncs.com
,这说明我们配置成功。
WARNING: No swap limit support
https://0bbqupb9.mirror.aliyuncs.com/
Windows/Mac配置镜像
Windows和Mac的Docker都是运行在Linux虚拟机的,两个系统理论上一样都可以通过图形化的界面设置Docker的镜像地址。按照以下方式配置阿里云镜像地址:
{"registry-mirrors": ["https://0bbqupb9.mirror.aliyuncs.com"]}
首先复制上面的json格式代码,然后打开docker配置的GUI界面。请按顺序点击你鼠标:右下交角->右击Docker图标->Settings->Docker Daemon->registry-mirrors。
值得一提是:你也可以SSH登录Linux虚拟机中直接像在Linux配置Docker镜像一样修改Docker服务的配置/etc/docker/daemon.json
文件。
结论
至此,已经知道如何编辑/etc/docker/daemon.json
并配置Docker服务的选项。如你有疑问,请在下面的评论中反馈。