7.1 私有仓库搭建与配置
公有仓库存储的都是公用镜像,jdk8啊,tomcat、mysql等等,私有仓库存放我们开发的应用,为了能在一个局域网共享这些镜像。
(1)拉取私有仓库镜像(如果有registry镜像,此步省略)
docker私有仓库本身就是一个镜像,先pull下来
docker pull registry
(2)根据镜像创建容器
docker run -di --name=registry -p 5000:5000 registry(镜像名)
把容器的5000端口映射成宿主机的5000端口。完成这步私有仓库就构建好了
(3)打开浏览器 输入地址http://服务器ip地址:5000/v2/_catalog
看到{"repositories":[]}
表示私有仓库搭建成功并且内容为空
(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
之后就能正常启动了
7.2 镜像上传至私有仓库
(1)标记此镜像为私有仓库的镜像
用tag对要上传到私有仓库的镜像打个标签
docker tag 【要打标签的镜像】 【指定私服地址/镜像名】(这样写在私服中就是你的镜像名)
docker tag ascdc/jdk8 你的ip:5000/原镜像名
然后docker images一下会发现多了个镜像你的ip:5000/原镜像名
,他其实就是原镜像的引用,为了上传镜像做准备。
如果此时直接docker push 你的ip:5000/原镜像名
可能不行,因为刚才重启了docker服务,你这个registry容器是关闭的(开启的当我没说),所以要再次启动
(2)再次启动私服容器
docker start registry
(3)上传标记的镜像
docker push 你的ip:5000/原镜像名 (这样写在私服中就是你的镜像名)
来源:CSDN
作者:0xac001d09
链接:https://blog.csdn.net/weixin_44424668/article/details/104060793