docke中私有仓库的搭建

前言:

          Docker仓库是用来包含镜像的位置,Docker提供了一个注册

服务器(Register)来保存多个仓库,每个仓库有可以包含多个具备

同的tag镜像。Docker运行中使用的默认仓库是Docker Hub 公共仓

库。Docker Hub 是docker公司维护的公共仓库,用户可以免费的进

行使用,也可以购买自己的死有仓库。

本篇博客着重讲述以下关于docker私有仓库的搭建,这时因为docker

hub虽然方便,但是还是有很多限制的,比如,需要网络的连接,所有

人都可以进行访问,由于安全原因企业不允许将镜像放置在外网,因此

,我们需要搭建自己的私有仓库来满足企业的要求。

 

正文:

    进行docker私有仓库的搭建:

 

进行软件的安装:

[root@server2 mnt]# ls
container-selinux-2.21-1.el7.noarch.rpm  pigz-2.3.4-1.el7.x86_64.rpm
docker-ce-18.06.1.ce-3.el7.x86_64.rpm    policycoreutils-2.5-17.1.el7.x86_64.rpm
libsemanage-2.5-8.el7.x86_64.rpm         policycoreutils-python-2.5-17.1.el7.x86_64.rpm
libsemanage-python-2.5-8.el7.x86_64.rpm
[root@server2 mnt]# yum install -y *      ###进行docker软件以及依赖性的安装

[root@server2 mnt]# systemctl start docker     ###进行docker服务的启动
[root@server2 mnt]# systemctl enable docker    ###进行docker服务的开机自启动
[root@server2 mnt]# docker info

 

进行docker软件的安装

 

进行docker信息的查看

 

进行regisrty镜像的导入,作为镜像的私有仓库

[root@server2 docker镜像]# docker load -i registry.tar   ###进行镜像的导入
[root@server2 docker镜像]# docker load -i nginx.tar    ###进行测试镜像的导入
[root@server2 docker镜像]# docker images     ###进行当前镜像的查看

 

进行当前镜像的查看

 

进行registry容器的运行

[root@server2 ~]# docker tag registry:2.3.1 registry:2    ###进行镜像名称的变更
[root@server2 ~]# docker run -d --name registry -p 5000:5000 -v /opt/registry/:/var/lib/registry registry:2     ###进行registry容器的运行,平指定端口和挂载目录

 

进行当前运行容器的查看和端口的查看

[root@server2 ~]# docker ps             ###进行当前运行容器的查看
[root@server2 ~]# netstat -antlp        ###进行端口的查看

 

 

进行测试镜像名称的改变(可以与仓库进行对接)

[root@server2 ~]# docker tag nginx:latest  localhost:5000/nginx    ###进行测试镜像的改名
[root@server2 ~]# docker images     ###进行当前镜像的查看

 

将本地镜像提交到仓库

[root@server2 ~]# docker push localhost:5000/nginx   ###进行本地镜像的提交

 

由于我们指定了挂载目录,因此我们可以在挂载目录下进行镜像的查看

[root@server2 ~]# yum install tree -y     ##3进行软件的安装
[root@server2 opt]# tree registry/        ###在挂载目录下进行仓库结构的查看

 

进行软件的安装

 

进行仓库结构的查看 

 

可以看到镜像提交到了仓库。

 

我们在私有仓库进行拉去的测试:

[root@server2 opt]# docker rmi localhost:5000/nginx:latest  ###我们进行之前镜像的删除
[root@server2 opt]# docker images     ###进行当前镜像的拉取

 

进行镜像的拉取

[root@server2 opt]# docker pull localhost:5000/nginx    ###在私有仓库进行镜像的拉取
[root@server2 opt]# docker images        ###进行当前镜像的查看

 

我们可以看到镜像拉取成功,并且测试可以发现,拉取的速度是非常快的。

 

使用证书认证进行私有仓库的搭建:

[root@server2 docker]# mkdir -p /tmp/docker/certs/    ###进行证书存放目录的建立
root@server2 docker]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/westos.org.key -x509 -days 365 -out certs/westos.org.crt    ###进行证书的建立
[root@server2 ~]# vim /etc/hosts     ###进行解析的设定

进行解析的设定

 

为了后卖测试,我们删除当前的仓库容器

[root@server2 ~]# docker  stop registry    ###进行容器的停止运行 
[root@server2 ~]# docker rm registry       ###进行镜容器的删除
[root@server2 opt]# rm -rf registry/       ###进行之前挂载目录的删除

 

进行仓库容器的运行:

[root@server2 ~]# docker run -d \
>   --restart=always \
>   --name=registry  \
>   -v  /tmp/docker/certs:/certs \
>   -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
>   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt \
>   -e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key \
>   -p 443:443 \
>   -v /opt/registry:/var/lib/registry \
>    registry:2
ec4e2f0677c0db106d608b573ee0852b410f750faa1e733a0ce7904f620ae72c

 

进行当前运行容器的查看及映射端口是否打开

[root@server2 ~]# docker ps    ###进行当前运行容器的查看
[root@server2 ~]# netstat -antlp     ###进行端口的查看

 

 

在配置目录下进行证书目录的创建,并将认证文件拷贝到配置目录中

[root@server2 certs.d]# mkdir -p /etc/docker/certs.d/westos.org/    ###进行存放认证文件目录的建立
[root@server2 westos.org]# cp /tmp/docker/certs/westos.org.crt ca.crt   ###进行认证文件的拷贝

 

进行测试镜像的改名和镜像的推送

[root@server2 ~]# docker tag localhost:5000/nginx:latest westos.org/nginx
[root@server2 ~]# docker images         ###进行当前镜像的查看
[root@server2 ~]# docker push westos.org/nginx    ###进行镜像的推送

 

在挂载目录中进行查看

[root@server2 opt]# tree registry/   ###进行仓库结构的查看

 

可见,仓库中已经出现了推送的镜像,

 

在仓库中进行镜像的拉取测试:

进行之前的镜像的删除

[root@server2 opt]# docker rmi westos.org/nginx:latest  ###进行镜像的删除
[root@server2 opt]# docker images     ###进行镜像的查看

 

从仓库中进行镜像的拉取

[root@server2 opt]# docker pull westos.org/nginx    ###进行镜像地拉取
[root@server2 opt]# docker images      ###进行镜像地查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值