docker私有仓库搭建

[复制链接]
655|1
手机看帖
扫描二维码
随时随地手机跟帖
keer_zu|  楼主 | 2020-12-11 18:41 | 显示全部楼层 |阅读模式
本帖最后由 keer_zu 于 2020-12-11 18:43 编辑

registry 的搭建1. 搭建
Docker 官方提供了一个搭建私有仓库的镜像 registry ,只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了。
docker pull registry:2
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --name myregistry registry:2

Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,我们将主机的/opt/registry目录挂载到该目录,即可实现将镜像保存到主机的/opt/registry目录了。
浏览器访问http://127.0.0.1:5000/v2,出现下面情况说明registry运行正常。

686295fd34d5504284.png

使用特权

评论回复

相关帖子

keer_zu|  楼主 | 2020-12-23 10:12 | 显示全部楼层

二,推送镜像到私有库
如果推送已有的镜像必须先打tag ,

注意:自定义repository 不能有大写字母!!!

docker tag <Image ID 或者repository:tag> 私有仓库IP:端口/<自定义repository>:<自定tag>

例:docker tag registry:latest 192.168.120.107:5000/my-registry:1.0

如果是想将某个容器保存为镜像并推送的话,则需要在commit的时候将私有库的ip和端口放到repository中

docker commit <容器ID或者容器名> <新repository>:<新TAG>

例: docker commit myregistry  192.168.120.107:5000/my-registry:1.0

执行完tag 命令或者 commit 命令后,我们执行docker images 可以发现,多出了一条repository 为 192.168.120.107:5000/my-registry , TAG 为 1.0 的镜像

然后将这个镜像推送到私有库
docker push 192.168.120.107:5000/my-registry:1.0

执行命令报错:

484615fe2a773e6f3b.png

这个问题可能是由于客户端采用https,docker registry未采用https服务所致。

第一种处理方式是把客户端对地址“192.168.120.107:5000”的请求改为http。
步骤如下:

在客户端服务器的”/etc/docker/“目录下,创建”daemon.json“文件。在文件中写入:

{ "insecure-registries":["192.168.120.107:5000"] }

保存退出后,重启docker,再push 就可以成功了。
改方法的缺陷是,如果有其他服务器也要对私有库进行pull或push操作的话,都需要添加该配配置。

第二种方法在私有库所在的服务器 安装 nginx 和ssl并进行配置,使私有库支持https的访问,详细步骤我记录在下面链接的这个博客中。
https://blog.csdn.net/Fickle_actor/article/details/88851744

三.从私有库拉取镜像

docker pull <私有库ip>:<端口>/ < 镜像repository> :<镜像tag>

例:docker pull 192.168.120.107:5000/my-registry:1.0


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群:49734243 Email:zukeqiang@gmail.com

1304

主题

12235

帖子

53

粉丝