一、参考资料
Docker实践(一):Ubuntu16.04安装Docker
二、重要说明
Docker 默认的下载源均在国外,没有VPN的情况下,下载速度都很慢,为此需要设置国内的下载镜像源。
Docker 下载加速可从三个方面加速:Docker镜像下载加速、pip 下载加速、apt 下载加速。
三、Docker镜像下载加速
中科大 docker
腾讯云 docker
七牛云 docker
在Docker容器外操作,即对Docker容器外下载Docker镜像加速。
1. 国内镜像
# Docker中国区官方镜像
https://registry.docker-cn.com
# 网易
http://hub-mirror.c.163.com
# 中国科技大学
https://docker.mirrors.ustc.edu.cn
# 阿里云
https://cr.console.aliyun.com/
# 腾讯云
https://mirror.ccs.tencentyun.com
# 七牛云
https://reg-mirror.qiniu.com
# 飞致云(推荐使用)
https://docker.1panel.live
2. 阿里云(已失效)
以阿里云为例,配置Docker镜像下载加速,其他镜像源类似。
如果使用阿里云产品,推荐使用阿里云镜像加速器,速度贼快;非阿里云产品,推荐使用其他docker镜像源。
2.1 查找镜像
登录阿里云帐号,打开控制台,搜索“镜像加速器”。专属加速器地址,例如:https://m6kp8j1n.mirror.aliyuncs.com
2.2 修改配置
修改 /etc/docker/daemon.json
文件,如果不存在则创建。
{
"registry-mirrors" : [
"https://m6kp8j1n.mirror.aliyuncs.com"
]
}
2.3 重启docker
# 更新配置
systemctl daemon-reload
# 重启docker服务使配置生效
systemctl restart docker
或者
service docker restart
# 查看是否生效
docker info | grep Mirrors -A 1
# 如果出现下面的提示,说明加速配置生效
Registry Mirrors:
https://m6kp8j1n.mirror.aliyuncs.com
四、pip 下载加速
在Docker容器里操作,即对Docker容器里pip下载加速。
先在容器外创建 pip.conf
配置文件,再拷贝到 Docker 容器中。
1. 创建 pip.conf 文件
在容器外创建 pip.conf
文件。
[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
2. 创建 .pip
目录
在容器内创建 .pip 目录。
cd ~
mkdir .pip
3. 拷贝 pip.conf
文件
拷贝 pip.conf
文件到Docker容器的 /root/.pip/
目录下。
docker cp pip.conf <container_id>:/root/.pip/
4. pip 下载测试
pip install numpy
五、apt下载加速
在Docker容器里操作,即对Docker容器里 apt下载加速。
先在容器外创建 sources.list
配置文件,再拷贝到 Docker 容器中。
1. 创建 sources.list
文件
在容器外创建 sources.list
文件。
deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian stable main contrib non-free
deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
# deb http://mirrors.ustc.edu.cn/debian stable-proposed-updates main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian stable-proposed-updates main contrib non-free
2. sources.list
文件备份
备份容器内的 sources.list
文件。
# 进入容器
docker exec -it <container_id> /bin/bash
# 进入 sources.list 文件目录
cd /etc/apt
# 备份容器中的 sources.list 文件
cp sources.list sources.list.bak
3. 拷贝 sources.list
文件
拷贝 sources.list
文件到Docker容器的 /etc/apt/
目录下。
docker cp sources.list <container_id>:/etc/apt/
4. 更新源
在容器里更新apt源。
apt-get update
apt-get upgrade
5. apt 下载测试
# 安装vim
apt-get install vim
六、FAQ
Q: Error response from daemon: Get https://registry-1.docker.io/v2/:
docker pull 报错Get “https://registry-1.docker.io/v2/“: net/http: request canceled while waiting for c
yoyo@yoyo:/etc/docker$ sudo docker pull hello-world:latest
Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
错误原因:阿里云的docker镜像源已失效。
解决方法:更换docker镜像源。
{
"registry-mirrors": ["https://docker.1panel.live"]
}