创建docker私有化仓库(使用官方docker-registry)

创建docker私有化仓库

1、私有仓库介绍

有时候使用Docker Hub这样的公共仓库可能不方便(有时候无法访问),用户可以创建一个本地仓库供私人使用,这里使用官方提供的工具docker-registry来配置私有库

1、使用官方提供的工具来配置

docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库。 

私有仓库好处:

1、节约带宽

2、可以自己定制系统

有了docker以后,所有软件不再以office.exe 或lrzsz.rpm形式发布,而以docker镜像发布。你只需要下载docker镜像并运行一个docker实例。有了docker以后,再也不用为安装linux服务而发愁。

实验环境:

docker私有仓库地址:192.168.3.71

docker服务器地址 : 192.168.3.72  ,72会使用71上docker私有仓库来pull/push镜像

image.png

2、配置3.71为docker私有仓库

2.1. 关闭防火墙

# systemctl stop firewalld && systemctl disable firewalld

# systemctl restart docker   #要重启一下docker的

# iptables -L -n  #查看规则时,发现即使关了firewalld,docker服务也会调用Netfilter内核模块,新增加防火墙转发规则。

2.2. 关闭selinux

#   vim /etc/sysconfig/selinux 

改:SELINUX = enforcing

为:SELINUX=disabled

#reboot

# getenforce

3、配置3.71为docker私有仓库服务端

3.1.启动docker

# systemctl start docker

2.拉取registry 镜像。  registry镜像中包括搭建本地私有仓库的软件:

把registry.tar上传到Linux上

方法一:导入本地镜像:

# docker load -i  registry.tar

方法二: 在线导入镜像,比较慢

# docker pull registry

查看registry镜像 # docker images

4. 实战:使用registry镜像搭建一个私有仓库

使用registry镜像搭建一个私有仓库。 registry镜像中已经把搭建私有库程序安装好了,我只需要使用registry镜像运行一个docker实例就可以了。

默认情况下,Registry程序的存放镜像信息的目录是/var/lib/registry目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失,所以我们一般情况下会指定本地物理机一个目录如/opt/registry挂载到容器的/var/lib/registry下。使用-v参数,指定本地持久的路径--restart=always  表示docker服务重启时容器自动重启

registry服务监听到端口号,默认是5000

# docker run -d -p 5000:5000 -v /opt/registry:/var/lib/registry   registry:latest

# docker run  -d -p 5000:5000 --restart=always -v /opt/registry:/var/lib/registry   registry:latest

查看端口服务是否开启:# netstat  -antup | grep 5000

# netstat -ntlup | grep 5000
tcp        0      0 0.0.0.0:5000            0.0.0.0:*               LISTEN      10065/docker-proxy
tcp6       0      0 :::5000                 :::*                    LISTEN      10077/docker-proxy

查看私有仓库中的镜像列表:

http://192.168.3.71:5000/v2/_catalog    #发现,现在还是空的,后期上传了本地docker镜像到私有仓库中,就有数据了。

image.png

5、在3.72上搭建docker服务并修改配置使用3.71的私有仓库

5.1. 在3.72上在线安装docker

安装docker环境依赖

# yum install -y yum-utils device-mapper-persistent-data lvm2

配置国内docker的yum源(阿里云)

# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker-ce

# yum install docker-ce docker-ce-cli containerd.io -y

# systemctl start docker && systemctl enable docker

5.2. 修改docker配置文件

修改docker配置文件,指定docker镜像加速结点为:私有仓库的地址

# vim  /etc/docker/daemon.json   #创建这个daemon.json文件,写入以下内容:

{

  "insecure-registries": [ "192.168.3.71:5000" ] 

}

注:添加红色标记文字。  --insecure-registry不安全的注册。这里的不安全指的是走http协议,要想安全传输镜像,需要使用https协议。我们的私有仓库一般是局域中使用,所以直接使用http协议就可以了。

实战-上传本地镜像到私有仓库

1、 从Docker HUB 上拉取一个测试镜像,名字: busybox

1.1 方法一:本地导入

上传busybox.tar镜像到Linux系统上,作为测试镜像。

# docker load -i  busybox.tar

# docker images

REPOSITORY  TAG      IMAGE ID                 CREATED            SIZE

busybox      latest     00f017a8c2a6          2 weeks ago         1.11 MB

1.2 方法二:在线安装

# docker pull busybox

2、在3.72上上传busybox镜像到3.71的docker私有仓库中

2.1.创建镜像链接或为基础镜像打个标签(复制一个镜像并起一个名字)

语法: docker  tag    原镜像名:标签       私有仓库地址/新镜像名:标签

执行:# docker tag busybox:latest 192.168.3.71:5000/busybox:latest

注: 不写镜像标签,默认是:latest

3. 将刚新打好标签的镜像,上传到3.71的私有仓库中。

#  docker push 192.168.3.71:5000/busybox

image.png

4.登录3.71上,查看镜像的存储目录和文件

# rpm -ivh /mnt/Packages/tree-1.6.0-9.el7.x86_64.rpm

# tree /opt/registry/docker/registry/v2/repositories/

image.png

访问http://192.168.3.71:5000/v2/_catalog   可以查看私有仓库中的镜像列表,如下图:

image.png

5、使用私有仓库中的镜像创建服务

删除镜像:语法: docker rmi  镜像名:标签 

[root@xuegod64 ~]# docker rmi 192.168.3.71:5000/busybox  #删除镜像

[root@xuegod64 ~]# docker pull 192.168.3.71:5000/busybox  #下载镜像

使用新导入的镜像,运行一个新docker实例:

[root@xuegod64 ~]# docker run 192.168.3.71:5000/busybox:latest  echo "hello" 

hello

运行成功。

总结

搭建私有仓库步骤:

1、把registry镜像导入docker

2、基于registry镜像运行一个docker实例,registry默认监听5000端口

导入镜像到私有仓库步骤:

1、安装docker服务

2、修改docker 服务 镜像源,改成私有仓库地址:   "insecure-registries": [ "192.168.3.71:5000" ]

3、把要导入的镜像打个标签如:docker  tag  原镜像名:标签   私有仓库地址/新镜像名:标签

4、上传打了标签的镜像到私有仓库: docker push  192.168.3.71:5000/busybox:latest

私有仓库的使用:

1、修改docker 服务镜像源,改成私有仓库地址: "insecure-registries": [ "192.168.3.71:5000" ]

2、下载刚才上传的镜像 : docker pull  192.168.3.71:5000/busybox:latest

3、查看私有仓库中的镜像列表:http://192.168.3.71:5000/v2/_catalog

版权声明:
作者:WaterBear
链接:https://l-t.top/2078.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录