Docker 之私有仓库搭建

拉取仓库镜像:registry

1
2
3
4
docker pull registry

#查看镜像
docker images

查看镜像

启动docker 私有仓库 registry

1
2
3
4
5
6
7
docker run -d \
-p 5000:5000 \
-v `pwd`/registry:/var/lib/registry \
--restart=always \
--privileged=true \
--name registry \
registry:2 \
  • -v 宿主机目录:容器目录
  • 把docker 容器中某目录的数据 加载到 宿主机的某个目录
  • 目的是为了防止docker私有仓库这个容器被删除时,仓库里的镜像也会被删除。

打个tag,表示新的版本

1
docker tag macintoshplus/rabbitmq-management   localhost:5000/macintoshplus/rabbitmq-management

将镜像push到私有仓库

1
docker push localhost:5000/macintoshplus/rabbitmq-management

查看镜像

1
2
3
4
发现会报以下错误:
The push refers to a repository [192.168.1.161:5000/hello-world]
Get https://127.0.0.1:5000/v1/_ping: http: server gave HTTP response to HTTPS client
原因是docker私有仓库服务器,默认是基于https传输的,所以我们需要在客户端127.0.0.1做相关设置,不使用https传输
1
2
3
4
vi /etc/docker/daemon.json

将下面的代码放进去保存并退出。
"insecure-registries":["127.0.0.1:5000"]

最终如下所示:

1
2
3
4
{
"registry-mirrors": ["https://njrds9qc.mirror.aliyuncs.com"],
"insecure-registries":["127.0.0.1:5000"]
}

重新启动docker

1
2
systemctl daemon-reload
systemctl restart docker

在私有仓库127.0.0.1查看上传的镜像

1
ls registry/docker/registry/v2/repositories

查看私有仓库镜像

通过私有仓库API 查看镜像

1
curl http://127.0.0.1:5000/v2/_catalog

通过私有仓库API 查看镜像

查看镜像版本列表

1
curl http://127.0.0.1:5000/v2/image_name/tags/list

查看镜像版本列表

pull 镜像

  1. 通过docker image 查看镜像

  2. 移除本地需要pull的镜像

  3. 从私有仓库拉取镜像

比如要下载刚刚push到私有仓库的镜像 localhost:5000/macintoshplus/rabbitmq-management

1
docker pull localhost:5000/macintoshplus/rabbitmq-management

官方文档
(官方文档)[https://docs.docker.com/registry/deploying/]

-------------本文结束感谢您的阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!