构建Docker私有仓库

一、Docker私有仓库

 

上一篇说了如何利用Dockerfile在已有镜像的基础上构建自己的镜像,那么如果需要让镜像在一个团队中使用,就需要一个仓库,有几种方式可以共享私有镜像。

1、将镜像上传至Docker Hub中

2、利用第三方Docker Harbor

3、创建私有镜像仓库

第一种方式需要在Docker Hub中注册一个账号,然后在本地登陆账号进行上传,但这种方式不安全,因为谁都可以共享你的镜像。不推荐。

第二种方式需要下载Docker Harbor安装,其是用于存储和分发Docker镜像的企业级Registry服务器,需要Docker compose支持。还有对用户友好的界面化操作,推荐此方式。

第三种是Docker提供了一个Registry镜像,名为docker-distribution。咱今儿来部署这种简单的。

二、利用docker-distribution构建私有仓库

1、执行安装命令

yum install docker-registry

  

2、安装完之后使用如下命令查看
rpm -ql docker-distribution

  

构建Docker私有仓库

/etc/docker-distribution/registry/config.yml:配置文件

/var/lib/registry:本地仓库

/usr/bin/registry:主程序

/usr/lib/systemd/system/docker-distribution.service:启动程序

3、启动私有仓库

systemctl start docker-distribution.service

  

其默认监听5000端口,使用ss -tnl查看linux上端口监听情况
构建Docker私有仓库

4、推送镜像到私有仓库

(1)使用docker tag命令对镜像重新打标签

docker tag my_nginx:latest cnode-1:5000/nginx:v1.1

  

cnode-1:5000为仓库所在地址和ip,ngixn为顶层仓库,如果不加tag,则推全部名为nginx的镜像。

(2)推送镜像

docker push cnode-1:5000/nginx:v1.1

  

5、如果出现推送失败
构建Docker私有仓库

是因为docker默认只支持https的协议,不支持http协议,此时需要在docker配置文件/etc/docker/daemon.json将私有仓库地址标记为非安全的registry

vim /etc/docker/daemon.json

{
"registry-mirrors": ["https://kewfdyw2.mirror.aliyuncs.com"],
"insecure-registries": ["cnode-1:5000"]
}

  

更改配置文件之后需要重启docker。

再次进行推送,情况如下图:

构建Docker私有仓库

表明已经推送成功。

6、查看仓库

需要去目录/var/lig/registry中查看,如下图:

构建Docker私有仓库

7、在其他机器上拉取镜像

需要在docker配置文件/etc/docker/daemon.json中将私有仓库添加为非安全的。

例如我在cnode-2中需要拉取镜像

(1)首先配置/etc/docker/daemon.json,配置之后需要重启才会生效

{
"registry-mirrors": ["https://kewfdyw2.mirror.aliyuncs.com"],
"insecure-registries": ["cnode-1:5000"]
}

  

(2)然后使用命令拉取镜像

docker pull cnode-1:5000/nginx:v1.1

  

构建Docker私有仓库

===============================

我是Liusy,一个喜欢健身的程序员。

获取更多干货以及最新消息,请关注公众号:上古伪神

如果对您有帮助,点个关注就是对我最大的支持!!!

上一篇:git push上传代码到gitlab上,报错401/403(或需要输入用户名和密码)


下一篇:本地docker镜像上传Docker Hub,并且在腾讯云上pull该镜像,最后运行成功。