运维开发网
广告位招商联系QQ:123077622
 
广告位招商联系QQ:123077622

Centos 7构建docker私有镜像仓库

运维开发网 https://www.qedev.com 2020-02-17 10:03 出处:网络 作者:xuad88
容器镜像的管理主要围绕镜像仓库(Registry)来进行。在实际应用中,无论开发人员或CI系统发布镜像,还是测试人员或运维人员下载镜像,都要通过镜像仓库来完成。镜像仓库分为公有仓库和私有仓库两种,例如DockerHub就属于公有仓库,公有仓库的优点是可以直接使用,无须自己维护。但考虑到访问效率和镜像安全等方面的原因,企业可构建自己内部的私有仓库,供内部员工上传、下载镜像使用。系统环境:服务器操作系

容器镜像的管理主要围绕镜像仓库(Registry)来进行。在实际应用中,无论开发人员或CI系统发布镜像,还是测试人员或运维人员下载镜像,都要通过镜像仓库来完成。镜像仓库分为公有仓库和私有仓库两种,例如Docker Hub就属于公有仓库,公有仓库的优点是可以直接使用,无须自己维护。但考虑到访问效率和镜像安全等方面的原因,企业可构建自己内部的私有仓库,供内部员工上传、下载镜像使用。

系统环境:

服务器 操作系统 IP地址 已安装软件
docker仓库主机 Centos 7.5 64位 192.168.2.225 docker-ce-18.06.1.ce
docker主机 Centos 7.5 64位 192.168.2.226 docker-ce-18.06.1.ce

一、构建私有仓库

1、下载registry镜像

docker pull registry

Centos 7构建docker私有镜像仓库

2、创建容器并运行

docker run -itd -p 192.168.2.225:5000:5000 -v /data/docker/registry:/var/lib/registry --restart=always --name registry registry:latest

Centos 7构建docker私有镜像仓库

参数说明:

-itd:开启交互模式,分配一个伪终端,以后台方式运行

-p:把容器的5000端口映射到宿主机指定IP的5000端口上

-v:把容器的/var/lib/registry目录映射到宿主机的/data/docker/registry目录,/var/lib/registry是容器中存放镜像文件的目录,来实现数据的持久化

--restart=always:重启策略,容器异常退出会自动重启容器

--name:指定容器的名称为registry

3、查看仓库中的镜像

curl http://192.168.2.225:5000/v2/_catalog

Centos 7构建docker私有镜像仓库

因为才刚运行,还未上传任何镜像,所以是空的

二、测试(另一台docker主机上操作)

1、将之前创建好的镜像打个标签

注:centos/httpd:test是我上一篇博文里制作的镜像,https://blog.51cto.com/andyxu/2174652

docker tag centos/httpd:test 192.168.2.225:5000/httpd-test:v1

Centos 7构建docker私有镜像仓库

参数说明:

tag:标记本地镜像,将其归于某一个仓库

centos/httpd:test是源镜像和标记信息

192.168.2.225:5000/httpd-test:v1是目标镜像,包含私有仓库的IP和端口

2、修改配置文件,添加私有仓库地址

vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://registry.docker-cn.com"], "graph": "/data/docker",
  "insecure-registries": ["192.168.2.225:5000"]
}

3、重启docker服务

systemctl restart docker

4、将镜像上传到私有仓库

docker push 192.168.2.225:5000/httpd-test:v1

Centos 7构建docker私有镜像仓库

5、查看私有仓库中的镜像

查看所有镜像

curl http://192.168.2.225:5000/v2/_catalog

Centos 7构建docker私有镜像仓库

查看httpd-test镜像有哪些tags

curl http://192.168.2.225:5000/v2/httpd-test/tags/list

Centos 7构建docker私有镜像仓库

6、将本地镜像打包成tar文件,保存到/tmp/目录下

docker save -o /tmp/httpd-test-v3.tar 192.168.2.225:5000/httpd-test

Centos 7构建docker私有镜像仓库

参数说明:

save:将指定镜像保存成tar归档文件

-o:目标文件,可使用绝对路径和相对路径

7、删除已经打过包的本地镜像

docker rmi -f 192.168.2.225:5000/httpd-test:v1 centos/httpd:test

Centos 7构建docker私有镜像仓库

8、从私有仓库下载httpd-test镜像

docker pull 192.168.2.225:5000/httpd-test:v1

Centos 7构建docker私有镜像仓库

9、创建并启动容器

docker run -itd --privileged --restart=always --name httpd_test -p 80:80 192.168.2.225:5000/httpd-test:v1 /usr/sbin/init

Centos 7构建docker私有镜像仓库

注:具体参数使用请参考我的上一篇部署博文https://blog.51cto.com/andyxu/2174652

10、通过浏览器访问http://192.168.2.226

Centos 7构建docker私有镜像仓库

能正常访问到apache主页,OK

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消