Docker系列七:(2)私有仓库(Repository)
程序员文章站
2022-06-16 23:12:33
...
目录
三:运行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"]}