欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker系列七:(2)私有仓库(Repository)

程序员文章站 2022-06-16 23:12:33
...

目录

一:下载registry镜像

二:配置使用仓库可信任-配置非 https 仓库地址

三:运行registry容器 - 服务器IP192.168.8.202

四:打标签

五:上传镜像

六:拉取镜像

七:常用操作


Docker Hub 这样的公共仓库可能不方便,我们可以创建一个本地仓库使用。使用到的工具docker-registry。

一:下载registry镜像

# 获取镜像
docker pull registry

二:配置使用仓库可信任-配置非 https 仓库地址

192.168.8.202是私有仓库

192.168.8.203是本地镜像, 203 -> 提交到 202

如果想让其他主机也能把镜像推送到私有仓库,这时你会发现无法成功推送镜像, 这是因为 Docker 默认不允许非 HTTPS 方式推送镜像

Get https://192.168.8.202:5000/v2/: http: server gave HTTP response to HTTPS client

需要在203服务器配置:
vim /etc/docker/daemon.json
添加"insecure-registries": ["192.168.8.202:5000"]
{
	"registry-mirrors": ["https://registry.docker-cn.com"],
	"insecure-registries": ["192.168.8.202:5000"]
}
## 重启203服务器docker使其生效
systemctl restart docker

三:运行registry容器 - 服务器IP192.168.8.202

# 运行镜像, 挂载本地镜像目录存储镜像
$ docker run -d -p 5000:5000 \
--mount type=bind,source=/usr/local,target=/var/lib/registry \
--restart=always --name registry registry

最终镜像位置:/usr/local/docker/registry/v2/repositories

四:打标签

docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]
docker tag centos:7 192.168.8.202:5000/centos:7
docker tag 镜像ID 192.168.8.202:5000/centos:7

五:上传镜像

$ docker push 192.168.8.202:5000/centos:7
   ->The push refers to repository [192.168.8.202:5000/centos]
    174f56854903: Pushed 
    7: digest: sha256:e4ca2ed.... size: 529

# 查看远程镜像:
curl 192.168.8.202:5000/v2/_catalog
  -> {"repositories":["centos"]}

六:拉取镜像

$ docker pull 192.168.8.202:5000/centos:7
    -> 7: Pulling from centos
        Digest: sha256:e4ca2ed0202e...
        Status: Downloaded newer image for 192.168.8.202:5000/centos:7
        192.168.8.202:5000/centos:7

七:常用操作

查看镜像仓库中所有的镜像
$ curl 192.168.8.202:5000/v2/_catalog
  -> {"repositories":[]}
  
列出镜像的标签
$ curl 192.168.8.202:5000/v2/centos/tags/list
    -> {"name":"centos","tags":["7"]}