docker私有镜像仓库搭建(可供本地及私有环境使用)

注意:若不想了解持久化内容的童鞋请查看顺序如下: 一、三、五、六、七、八、九

docker私有镜像仓库搭建(可供本地及私有环境使用)

一.安装Docker Registry并运行容器

sudo docker run -d -v /skyfans/registry:/var/lib/registry -p 5000:5000 --restart=always --privileged=true --name registry registry:latest
1.1:各个参数解释
-d容器后台运行
-v /skyfans/registry:/var/lib/registry默认情况下,会将仓库存放于容器内的/var/lib/registry目录下,这里指定本地目录挂载到容器。
-p 5000:5000端口映射
–restart=always1在容器退出时总是重启容器,主要应用在生产环境(请注意实际环境是否添加此参数)
–privileged=true在CentOS7中的安全模块selinux把权限禁掉了,参数给容器加特权,不加上传镜像会报权限错误
–name registry指定容器的名称

二.docker镜像持久化–扩展内容(不需要此步骤的请直接下一步)

我测试的镜像是我由其他机器上导出的镜像,所以这里介绍了持久化的内容,算是扩充内容。不需要此步骤的请直接下一步!!!

语法:docker save 镜像id > 某一路径

注意修改你的路径及镜像id

docker save 929f330b6f97 >/skyfans/tomcat.tar

三.导入镜像到镜像仓库服务器

docker load < /skyfans/tomcat.tar

在这里插入图片描述

四.docker容器持久化–扩展内容(不需要此步骤的请直接下一步)

语法:docker export 容器id > 某一路径

导入持久化的镜像到本机

哟么有发现,导入后的镜像没有仓库:标签,都显示为none

我们来给他们个仓库:标签。

重命名镜像语法:docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)

docker tag 929f330b6f97 tomcat:skyfans

在这里插入图片描述

五.推送tomcat到Registry仓库

语法:docker tag 镜像Id 仓库IP:端口/命名

sudo docker tag 929f330b6f97 127.0.0.1:5000/tomcat

推送到仓库

sudo docker push 127.0.0.1:5000/tomcat

使用中遇到的问题
Get https://127.0.0.1:5000/v1/_ping: Tunnel Connection Failed
解决方案:
修改daemon.json文件vim /etc/docker/daemon.json
添加:{ “insecure-registries”:[“127.0.0.1:5000”]}

vim /etc/docker/daemon.json 
添加如下内容:
"insecure-registries":["127.0.0.1:5000"]

六.验证是否推送到镜像仓库

curl http://localhost:5000/v2/_catalog|python -m json.tool

看到了,成功情况如下:

在这里插入图片描述

七.好tomcat成功,我们在测试一个mysql的镜像推送

7.1获取mysql镜像id
docker images 

在这里插入图片描述

7.2推送mysql到Registry仓库
sudo docker tag  f991c20cb508 127.0.0.1:5000/mysql
sudo docker push 127.0.0.1:5000/mysql
7.3验证是否推送到镜像仓库(注意,这里我的服务器没有详细配置host内容,所以localhost和127.0.0.1是一样的!!!!)
curl http://localhost:5000/v2/_catalog|python -m json.tool

mysql也进来了!~~
在这里插入图片描述

八.镜像仓库拉取验证

好,既然我们弄好了我们的私有镜像仓库,那接下来我们来测试下是否可以,并是否可以拉取下来吧。干这事之前,我们需要先把原有的镜像干掉。我们已干掉mysql的镜像为例!!!!

8.1语法扩展:

docker rm 容器id(或tag或REPOSITORY),删除容器
docker rmi 镜像ID(或tag),删除镜像

8.2遇到问题:
docker rmi f991c20cb508

报错,删除不掉镜像文件
在这里插入图片描述

问题分析,查看镜像id
在这里插入图片描述
由于存在同名id镜像,删除命令不知道该删除哪个。。。换种方式,本来想用tag进行删除,但是一看,我擦,tag名字也一样,这坑。

8.3删除镜像

好吧,那我就使用REPOSITORY进行删除看下

docker rmi docker.io/mysql

在这里插入图片描述
可算是删除掉了。。所以大家在创建镜像时,一定要注意给好不同的tag!!!

继续,把另外一个也干掉,否则,我们怎么知道是否会拉取下来并成功呢。

 docker rmi 127.0.0.1:5000/mysql

在这里插入图片描述

这下全没了,验证下

docker images

在这里插入图片描述
好,已经删除了,那我们开始从我们的私有镜像仓库拉取下来mysql的镜像

九.私有镜像仓库拉取并测试

docker pull 127.0.0.1:5000/mysql

查看拉取情况:

docker images

在这里插入图片描述

OK,到这里我们的镜像仓库已经完活了,并且测试了是否可以拉取到本地!!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值