Docker 搭建私有仓库及推送、拉取镜像

最佳<Coder
2026/5/10修改于 3天前

搭建私有Docker镜像仓库可以加速内部镜像分发。本文介绍使用Docker Registry搭建私有仓库、配置HTTPS、推送和拉取镜像的完整流程,以及常见问题的解决方案。

Docker 搭建私有仓库及推送、拉取

1、Docker 设置加速镜像

新建或者修改 /etc/docker/daemon.json 文件:

vim /etc/docker/daemon.json

其中 registry-mirrors 对应的地址获取方式:登录阿里云容器镜像服务控制台,在左侧导航栏选择 镜像工具 > 镜像加速器,在镜像加速器页面获取加速器地址。

{
  "registry-mirrors": ["https://前缀.mirror.aliyuncs.com"]
}

2、重启 Docker

systemctl daemon-reload
systemctl restart docker

3、拉取 Registry 镜像并运行

docker pull registry

4、新建镜像存储目录,并运行镜像

mkdir /opt/registry/
docker run -dit -v /opt/registry:/var/lib/registry -p 5000:5000 --name myregistry registry:latest

5、防火墙或安全组放开端口 5000

6、测试

curl 127.0.0.1:5000/v2/_catalog

此时应该显示:

{"repositories":[]}

7、将本地镜像 Push 到私有仓库(以 nginx 为例)

(1)对本地镜像打标签

docker tag nginx:latest 127.0.0.1:5000/nginx:latest

(2)Push 到私有仓库

docker push 127.0.0.1:5000/nginx:latest

(3)查看私有仓库中的镜像

curl 127.0.0.1:5000/v2/_catalog

结果应为:

{"repositories":["nginx"]}

8、删除私有仓库镜像

/opt/registry/ 目录下找到对应的镜像名,删除整个文件夹即可。

9、拉取私有仓库镜像

(1)使用 HTTP 公网 IP 拉取

在要拉取镜像的机器上,修改 /etc/docker/daemon.json 文件,在花括号内添加:

{
  "insecure-registries": ["47.98.165.29:5000"]
}

然后重载 Docker 配置、重启 Docker:

systemctl daemon-reload
systemctl restart docker

再测试拉取:

docker pull 47.98.165.29:5000/nginx:latest

(2)在本机上拉取

直接使用 127.0.0.1 即可:

docker pull 127.0.0.1:5000/nginx:latest

评论

已显示全部评论