查看最新更新, 请前往
1. docker pull 拉取镜像
使用 $ docker pull {IMAGE_NAME} 拉取镜像时, 有两种情况:
IMAGE_NAME 中有 . 或 :
Docker 会将 IMAGE_NAME 识别为带域名的镜像. 例如, myregistry.io/space1/image1:latest ,Docker 会去 myregistry.io 指向的服务器请求镜像数据. 一个 Docker 镜像分为很多层, 如果本地存在该层, 则不会再次拉取.
IMAGE_NAME 中没有 . 或 :
Docker 会将 IMAGE_NAME 拼接为 docker.io/IMAGE_NAME 请求镜像数据. 事实上,$ docker pull docker.io/shaowenchen/images1 与 $ docker pull shaowenchen/images1 同等效果. 对于 DockerHub 提供的镜像, 国内访问速度较慢, 可以通过添加镜像源的方式加速.
在拉取镜像时, 可能会有两个问题:
1, 拉取非公开镜像, 提示登录
直接使用 docker login 登录即可, 在非交互场景, 可以执行:
$ echo "$DOCKER_PASSWORD" | docker login $REGISTRY -u "$DOCKER_USERNAME" --password-stdin
2, 镜像仓库证书错误
如果 IMAGE_NAME 中指定了镜像仓库服务器, 但服务器并不提供合法的 https 服务, 那么需要进行如下配置:
在 /etc/docker/daemon.JSON 文件中, 增加:
- {
- "insecure-registries": ["core.harbor.chenshaowen.com:5000"]
- }
重启 Docker 生效.
2. 修改镜像源, 加速镜像拉取
修改 Docker 的配置文件 daemon.JSON
在 /etc/docker/daemon.JSON 文件中, 增加镜像源
- {
- "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
- }
修改 Docker 的 systemd 参数
编辑文件 /usr/lib/systemd/system/docker.service , 在 ExecStart 所在行, 增加 registry-mirror 参数.
ExecStart=... --registry-mirror=https://docker.mirrors.ustc.edu.cn
重启 Docker 生效.
来源: https://www.qcloud.com/developer/article/1499967