Lunix系统下(Ubuntu)docker搭建基于局域网的私有仓库

在docker实际开发应用中,使用公共docker仓库如(Docker Hub)有不太方便;于是自己开始研究搭建基于局域网的docker仓库;

相比于公共仓库而言其优势如下:
1.公共仓库占用网络资源大,一旦网络带宽有限镜像的上传(push)和下载(pull)收到比较大的影响,局域网的私有仓库没有该限制;

2.必须依赖公共网络(外网),而局域网中的私有仓库不受该限制;

环境准备:
    两台装有docker的Ubuntu系统环境
     虚拟机一:10.10.181.108 用作私有仓库。docker版本:Docker version 18.09.7, build 2d0083d
     主机二(非虚拟机):10.10.181.229 普通用户机;docker版本:Docker version 19.03.1, build 74b1e89e8a

搭建:

1、私有仓库是基于registry镜像简单制作的。首先下载registry镜像

  gzrobot@robot:/data/registry$ sudo docker  pull registry

 gzrobot@gzrobot:~$ sudo docker  images  | grep   registry

2.创建修改私有仓库的路径(本地)
默认情况下,会将仓库放在容器内的/data/registry目录下,这样有个问题,如果容器被删除,则存放在容器中的镜像也会丢失。所以一般情况下建议指定本地一个目录挂载到容器内的/data/registry下(新版本是/var/lib/registry)
gzrobot@gzrobot:~$ sudo docker run -d -p 5000:5000 -v /data/registry:/var/lib/registry  --restart=always  registry

查看容器的启动状态: docker  ps -a   

Up表明已已启动成功! 

3.在向私有镜像push 镜像时,与docker registry交互默认使用的是https,此处只是http服务,因此需要在修改docker的配置文件,修改有两种办法。一种是修改新版docker下的vim   /lib/systemd/system/docker.service 文件。--insecure-registry 10.10.181.108:5000  如下:

6.服务已经开启,正式push镜像。

docker tag  gz_time  10.10.181.108:5000/gz_time

 docker   push 10.10.181.108:5000/gz_time

7、查看私有仓库的所有镜像:

root@gzrobot:/data/registry/docker# curl 10.10.181.108:5000/v2/_catalog

8.客户端下载该镜像前,首先修改docker配置文件,添加仓库地址,添加的方法跟上面10.10.181.108的方法相同。仓库地址指向10.10.181.108即可;如

    9、从私有仓库中下载已有的镜像:客户端操作:10.10.181.229

root@robot:/data/registry# docker    pull  10.10.181.108:5000/gz_time

root@robot:/data/registry# docker  images |  grep gz_time

参考:https://blog.csdn.net/qq_41547105/article/details/104392352

猜你喜欢

转载自blog.csdn.net/xiaoshunzi111/article/details/108256468