侧边栏壁纸
博主头像
小周的个人博客 博主等级

行动起来,活在当下

  • 累计撰写 35 篇文章
  • 累计创建 9 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

Docker私有化仓库

Administrator
2026-05-11 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

1 Docker仓库概述

Docker官方的Dockerhub(https://hub.docker.com)是一个用于管理公共镜像的仓库,我们可以从上面拉取镜像 到本地,也可以把我们自己的镜像推送上去,但是,有时候我们的服务器无法访问互联网,或者不希望将自己的镜像放到公网中,那么我们可以自己搭建私有仓库来存储镜像

Docker 官方提供了一个 registry 镜像来搭建私有仓库,只需把镜像下载下来,运行容器并暴露5000端口(registry服务默认监听的是5000端口),就可以使用了。

2 拉取registry镜像

[root@localhost ~]# docker pull registry
[root@localhost ~]# docker images

3 创建私有仓库

[root@localhost ~]# mkdir /docker_registry
[root@localhost ~]# docker run -d --name registry -p5000:5000 \
-v /docker_registry/:/var/lib/registry \
--restart=always \
 registry

:/var/lib/registry/ 这个目录是registry容器中存放镜像文件的目录,来实现数据的持久化

4 访问registry仓库

通过浏览器访问:http://私有仓库服务器地址:5000/v2/_catalog

能过够看到 {"repositories":[]} 表示私有仓库搭建成功

5 Docker添加仓库地址

在 /etc/docker/daemon.json 文件中添加私有仓库地址及端口

[root@localhost ~]# vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://d3p1s1ji.mirror.aliyuncs.com"],
  "insecure-registries": ["仓库服务器IP:5000"]
}

重启docker

[root@localhost ~]# systemctl restart docker

6 为镜像打标签

为什么要打标签?如果镜像是上传到docker hub默认是不需要为镜像打标签,应为默认走的就是公共仓库(docker hub),如果是上传到本地私有仓库,那么标签是为了指定本地私有仓库的地址。

私有仓库镜像打标签语法:docker tag 原镜像名:tag 仓库地址:5000/镜像名:tag

为php7-mysql镜像打标签(要保证境镜像的tag是本地仓库地址与端口)

[root@localhost ~]# docker tag php7-mysql:v1 192.168.0.10:5000/php7-mysql:v1
[root@localhost ~]# docker images
192.168.0.10:5000/php7-mysql   v1

:当你对源镜像打标签后,原镜像与新镜像ID号是相同的,删除镜像时如果按照镜像ID删除,则相同ID的所有不同标签的镜像也全部删除。

7 上传镜像到私有仓库

格式:docker push 镜像名:tag

[root@localhost ~]# docker push 192.168.0.10:5000/php7-mysql:v1

上传后浏览器查看:http://192.168.0.10:5000/v2/_catalog

8 拉取仓库镜像至本地

先删除本地同名镜像文件在进行拉取:

[root@localhost ~]# docker rmi 192.168.0.10:5000/php7-mysql:v1
[root@localhost ~]# docker pull 192.168.0.10:5000/php7-mysql:v1


0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区