Docker 如何拉取镜像

2023年 1月 4日 40.2k 0

1. docker pull 拉取镜像

使用 docker pull {IMAGE_NAME} 拉取镜像时,有两种情况:

  • IMAGE_NAME 前缀指向 registry

Docker 会将 IMAGE_NAME 识别为指定仓库提供的镜像。例如,myregistry.io/space1/image1:latest ,Docker 会去 myregistry.io 指向的服务器请求镜像数据。一个 Docker 镜像分为很多层,如果本地存在该层,则不会再次拉取。

  • IMAGE_NAME 前缀不包含 registry

Docker 会将 IMAGE_NAME 识别为 docker.io/IMAGE_NAME 请求镜像数据。事实上,docker pull docker.io/shaowenchen/images1docker pull shaowenchen/images1 同等效果。对于 DockerHub 提供的镜像,国内访问速度较慢,可以通过添加镜像源的方式加速。在拉取镜像时,可能会有两个问题:1,拉取非公开镜像,提示登录直接使用 docker login 登录即可,在非交互场景,可以执行:

1
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 文件中,增加镜像源

1
2
3
{ 
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] 
}
  • 修改 Docker 的 systemd 参数

编辑文件 /usr/lib/systemd/system/docker.service ,在 ExecStart 所在行,增加 registry-mirror 参数。

1
ExecStart=... --registry-mirror=https://docker.mirrors.ustc.edu.cn

重启 Docker 生效。

相关文章

KubeSphere 部署向量数据库 Milvus 实战指南
探索 Kubernetes 持久化存储之 Longhorn 初窥门径
征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
那些年在 Terraform 上吃到的糖和踩过的坑
无需 Kubernetes 测试 Kubernetes 网络实现
Kubernetes v1.31 中的移除和主要变更

发布评论