7.1 私有仓库搭建与配置
公有仓库存储的都是公用镜像,jdk8啊,tomcat、mysql等等,私有仓库存放我们开发的应用,为了能在一个局域网共享这些镜像。
(1)拉取私有仓库镜像(如果有registry镜像,此步省略)
docker私有仓库本身就是一个镜像,先pull下来
docker pull registry
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WSCKUv9T-1579582134080)(Docker(1)].assets/image-20200121121718622.png)](https://img-blog.csdnimg.cn/20200121124946626.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQyNDY2OA==,size_16,color_FFFFFF,t_70)
(2)根据镜像创建容器
docker run -di --name=registry -p 5000:5000 registry(镜像名)
把容器的5000端口映射成宿主机的5000端口。完成这步私有仓库就构建好了![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oGzmm9Sf-1579582134081)(Docker(1)].assets/image-20200121121901258.png)](https://img-blog.csdnimg.cn/20200121124953973.png)
(3)打开浏览器 输入地址http://服务器ip地址:5000/v2/_catalog看到{"repositories":[]} 表示私有仓库搭建成功并且内容为空
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kjr4ufOY-1579582134082)(Docker(1)].assets/image-20200121122045590.png)](https://img-blog.csdnimg.cn/20200121125011526.png)
(4)修改daemon.json
这一步是让docker信任这个私有仓库的地址,这样才能把docker本地的镜像上传到私有仓库。
添加配置
vi /etc/docker/daemon.json
先设置下镜像源,提高下载速度
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
然后添加以下内容,保存退出。
{
"insecure-registries":["你的ip地址:5000"]
}
如果要写多个私服,在中括号中添加即可。
注意这里时json,键值对,逗号隔开,不写逗号重启不了docker!
(5)重启docker 服务生效
systemctl restart docker
此时发现启动失败!!!
查看资料得知:如果是配置了国内镜像,并且镜像文件为/etc/docker/daemon.json,则修改文件后缀为.conf即可正常启动docker 服务
修改文件名
mv /etc/docker/daemon.json /etc/docker/daemon.conf
之后就能正常启动了![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hHL0AMpZ-1579582134084)(Docker(1)].assets/image-20200121123653431.png)](https://img-blog.csdnimg.cn/20200121125106769.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQyNDY2OA==,size_16,color_FFFFFF,t_70)
7.2 镜像上传至私有仓库
(1)标记此镜像为私有仓库的镜像
用tag对要上传到私有仓库的镜像打个标签
docker tag 【要打标签的镜像】 【指定私服地址/镜像名】(这样写在私服中就是你的镜像名)
docker tag ascdc/jdk8 你的ip:5000/原镜像名
然后docker images一下会发现多了个镜像你的ip:5000/原镜像名,他其实就是原镜像的引用,为了上传镜像做准备。
如果此时直接docker push 你的ip:5000/原镜像名可能不行,因为刚才重启了docker服务,你这个registry容器是关闭的(开启的当我没说),所以要再次启动
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-svUOHcLi-1579582134085)(Docker(1)].assets/image-20200121124359192.png)](https://img-blog.csdnimg.cn/2020012112512998.png)
(2)再次启动私服容器
docker start registry

(3)上传标记的镜像
docker push 你的ip:5000/原镜像名 (这样写在私服中就是你的镜像名)

来源:CSDN
作者:0xac001d09
链接:https://blog.csdn.net/weixin_44424668/article/details/104060793