前言
本文旨在通过免费获取阿里云容器加速地址来提高Docker
镜像的下载速度,由此减少相关服务的部署时间。
文章目录
[TOC]
快速了解Docker
Docker
可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux
机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone
的app
),更重要的是容器性能开销极低。
如图1,展示了Docker
与虚拟机的对比。
快速了解Docker镜像
Docker
镜像,可以理解为一个特殊的文件系统。它除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(例如环境变量)。
镜像不包含任何动态数据,其内容在构建之后也不会被改变。
使用阿里云服务加速
获取阿里云加速器地址
登陆阿里云网站,选择「容器镜像服务」下的「镜像加速器」。阿里云每个账户配置了不同的「加速器地址」。
写入文件
按照图2第四步的「操作文档」,选择相应的系统进行配置即可。
我这边是Centos
的服务器,执行以下4步命令即可。
sudo mkdir -p /etc/docker
echo '{ "registry-mirrors": ["https://yourID.mirror.aliyuncs.com"]} ' | tee /etc/docker/daemon.json
sudo systemctl daemon-reload
sudo systemctl restart docker
如果输入命令出现问题,在/etc/docker/
目录下创建daemon.json
文件,然后追加「加速器地址」。
{ "registry-mirrors": ["https://yourID.mirror.aliyuncs.com"] }
命令讲解
tee
指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。
例如:
ping baidu.com | tee ping-baidu.log
该命令输出到控制台的同时,还将内容保存到ping-baidu.log
文件当中。
systemctl
是守护进程Systemd
的主命令,用于管理系统。
关于Systemd
的详细介绍,可以查看「参考资料」的第三篇文章。
sudo systemctl daemon-reload
表示重载所有修改过的配置文件。
部署多个源
除了阿里云,还有其他源,如下:
中国区官方镜像:https://registry.docker-cn.com
网易:https://hub-mirror.c.163.com/
七牛云加速器:https://reg-mirror.qiniu.com
同上步骤一样,在/etc/docker/daemon.json
文件加入如下内容。
{ "registry-mirrors": [
"https://hub-mirror.c.163.com/",
"https://registry.docker-cn.com"
] }
检查加速器是否生效
配置加速器之后,如果拉取镜像仍然十分缓慢,请手动检查加速器配置是否生效。
在命令行执行docker info
,如果从结果中看到了如下内容,说明配置成功。
Registry Mirrors:
https://<yourID>.aliyuncs.com
尝试下载mysql
的官方镜像。
docker pull mysql:latest
约10s就完成了。
可能存在的问题
当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。国内各大云服务商均提供了Docker
镜像加速服务,建议根据运行Docker
的云平台选择对应的镜像加速服务。
参考资料
[1] Docker 镜像加速
[2] 如何通俗解释Docker是什么?
[3] Systemd 入门教程:命令篇