基于阿里云的Docker镜像加速器

前言

本文旨在通过免费获取阿里云容器加速地址来提高Docker镜像的下载速度,由此减少相关服务的部署时间。

文章目录

[TOC]

快速了解Docker

Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhoneapp),更重要的是容器性能开销极低。

如图1,展示了Docker虚拟机的对比。

基于阿里云的Docker镜像加速器_第1张图片
图1.Docker与虚拟机的对比

快速了解Docker镜像

Docker镜像,可以理解为一个特殊的文件系统。它除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(例如环境变量)。

镜像不包含任何动态数据,其内容在构建之后也不会被改变。

使用阿里云服务加速

获取阿里云加速器地址

登陆阿里云网站,选择「容器镜像服务」下的「镜像加速器」。阿里云每个账户配置了不同的「加速器地址」。

基于阿里云的Docker镜像加速器_第2张图片
图2.阿里云操作界面

写入文件

按照图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://.aliyuncs.com

尝试下载mysql的官方镜像。

docker pull mysql:latest 

约10s就完成了。

可能存在的问题

当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。国内各大云服务商均提供了Docker镜像加速服务,建议根据运行Docker的云平台选择对应的镜像加速服务。

参考资料

[1] Docker 镜像加速

[2] 如何通俗解释Docker是什么?

[3] Systemd 入门教程:命令篇

你可能感兴趣的:(基于阿里云的Docker镜像加速器)