Docker搭建私有镜像仓库 将Docker镜像推送至镜像仓库

一、搭建私有镜像仓库:

参考https://blog.csdn.net/qq_18598403/article/details/91349114

docker pull registry

cd /usr/local/

mkdir docker_registry

启动一个私有仓库:

即后台启动 registry 镜像构建出来的容器,并命名为docker-registry,端口号映射为5000到5000。

--restart=always代表当容器因为某些原因停止时,不管退出码是什么都自动重启。除了always还有on-failure代表只有退出码不为 0 时才重启,并且接受重启次数参数:--restart=on-failture:5

-v指定将宿主机的/root/docker/registry/目录挂载到容器的/var/lib/registry/目录。这样我们不用进入容器,在宿主机上就能访问到容器内我们感兴趣的目录了。

docker run -itd -p 192.168.*.*:5000:5000 -v /usr/loacal/docker_registry:/var/lib/registry --restart=always --name docker-registry registry:latest

docker run -d -p 5000:5000 --name="docker-registry" --restart=always -v /root/docker/registry/:/var/lib/registry/ registry

查看仓库中的镜像:

curl http://192.168.*.*:5000/v2/_catalog

显示如下说明成功了,因为是新建的仓库,还没有上传任何镜像,所以是空的。

二、将镜像推送至私有仓库:

1. 首先需要在镜像的 tag 上加入仓库地址:

docker tag 镜像名 仓库地址/新的镜像名称:版本

docker tag whu_model 192.168.*.*:5000/whu_model:latest

2. 然后将该镜像推至镜像仓库 要加上tag

docker push 仓库地址/新的镜像名称

docker push 192.168.*.*:5000/whu_model

在这里可能遇到一个问题:

http: server gave HTTP response to HTTPS client

查了网上的博客说是需要注意仓库地址没有加协议部分,docker 默认的安全策略需要仓库是支持 https 的,如果服务器只能使用 http 传输,那么直接上传会失败,需要在 docker 客户端的配置文件中进行声明。

修改 /etc/docker/daemon/json 加入下面内容:

{"insecure-registries":["192.168.*.*:5000"]}

然后重启docker生效

systemctl restart docker


重启之后再次push:

重新再查看一下,发现镜像仓库里已经有成功上传的镜像:

三、删除镜像仓库中的镜像

之后再来记录吧

https://blog.csdn.net/Fickle_actor/article/details/88929637

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容