在Docker实战中,搭建和使用私有仓库是组织内部管理和分发容器镜像的重要手段。以下是搭建和使用Docker私有仓库的基本步骤:
搭建Docker私有仓库
-
拉取Registry镜像:
docker pull registry
-
运行Registry容器:
- 使用以下命令启动一个私有仓库容器,并映射端口5000到宿主机(确保这个端口没有被占用):
docker run -d --restart=always --name my-registry \ -p 5000:5000 \ -v /path/to/registry-storage:/var/lib/registry \ registry:latest
- 上述命令中的
-v
参数用于将宿主机的目录挂载为容器内的存储位置,以便持久化保存上传的镜像数据。
- 使用以下命令启动一个私有仓库容器,并映射端口5000到宿主机(确保这个端口没有被占用):
-
配置信任私有仓库:
- 编辑
/etc/docker/daemon.json
文件,在其中添加私有仓库地址,以允许Docker守护进程连接不安全的仓库(非HTTPS):{ "insecure-registries": ["私有仓库服务器IP:5000"] }
- 重启Docker服务使配置生效:
sudo systemctl restart docker
- 编辑
使用私有仓库
将镜像标记并推送到私有仓库:
-
标记本地镜像,使其指向私有仓库:
docker tag <existing_image_name>:<tag> 私有仓库服务器IP:5000/<repository_name>:<tag>
-
将标记后的镜像推送到私有仓库:
docker push 私有仓库服务器IP:5000/<repository_name>:<tag>
从私有仓库拉取镜像:
- 在Docker客户端上配置好私有仓库地址后,可以直接从私有仓库拉取镜像:
docker pull 私有仓库服务器IP:5000/<repository_name>:<tag>
注意事项
- 如果需要通过HTTPS访问私有仓库,应提供SSL证书,并在启动Registry时指定相关参数。
- 若私有仓库需要认证,需额外设置用户和密码认证、Token认证或集成LDAP等身份验证机制。
- 在生产环境中,通常会使用更高级的私有仓库解决方案如Harbor、Nexus Repository Manager或者Artifactory等,它们提供了更多的安全性和管理功能。