在Ubuntu17.10的Docker上搭建本地私有仓库的详细步骤
环境准备
环境:两个装有Docker的Ubuntu虚拟机
虚拟机一:192.168.231.131 用户开发机
虚拟机二:192.168.231.133 用作私有仓库
此处我们准备了两个虚拟机,分别都安装了Docker,其中131机器用作开发机,133机器用作registry私有仓库机器。环境准备好之后接下来我们就开始搭建私有镜像仓库。
https://blog.****.net/michaelehome/article/details/79874787
搭建私有仓库
首先在133机器上下载registry镜像,并且指定本地一个目录/opt/data/registry挂载到容器的/tmp/registry下,如下:
1 | $ sudo docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry |
可以看到我们启动了一个容器,地址为:192.168.231.133:5000
输入http://localhost:5000/v2/_catalog,查看现在的仓库是空的:
接下来我们就要把一个本地镜像push到私有仓库中
在131机器下pull一个比较小的镜像来测试(此处使用的是busybox)
1 | $ sudo docker pull busybox |
接下来修改一下该镜像的tag
1 | $ sudo docker tag busybox 192.168.231.133:5000/busybox |
接下来把打了tag的镜像上传到私服
1 | $ sudo docker push 192.168.231.133:5000/busybox |
出现上述提示,表示本地的仓库默认使用的是https进行上传,如果是通过非https连接时,就会出现以上的提示。
为了解决这个问题需要在启动docker server时增加启动参数
修改docker启动配置文件(此处是修改131机器的配置)Ubuntu17.10下配置文件位置为:/lib/systemd/system/docker.service
在其中增加--insecure-registry192.168.231.133:5000如下所示:
1 | $ sudo vi /lib/systemd/system/docker.service |
修改完之后,重启Docker服务
1 | $ sudo service docker stop |
2 | $ sudo service docker start |
可以看到重启完之后,我们再次运行推送命令,本地镜像顺利的推送到了本地仓库上
1 | $ sudo docker push 192.168.231.133:5000/busybox |
查看本地仓库:busybox已经push到本地仓库中了。
接下来我们删除133上面的本地镜像
1 | $ sudo docker images |
2 | $ sudo docker rmi 192.168.231.133:5000/busybox:latest |
3 | $ sudo docker rmi busybox:latest |
删除了本地镜像,然后我们从私有镜像仓库中下载该镜像
1 | $ sudo docker pull 192.168.231.133:5000/busybox |