系统环境:CentOS Linux release 7.5.1804 (Core)

docker版本:Docker version 1.13.1, build 6e3bb8e/1.13.1


一、docker hub公共仓库

# docker pull centos

二、私有仓库

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

2.1、安装服务:

# yum install -y python-devel libevent-devel python-pip gcc xz-devel

# docker pull registry:2

2.2、查看

# docker images

docker公共仓库和私有仓库_仓库docker公共仓库和私有仓库_私有_02

2.3、启动容器

# docker run -d -p 5000:5000 --privileged=true -v /opt/registry:/tmp/registry registry

说明:

-d ==> 作为daemon进程启动,也就是后台启动

-v /myregistry:/tmp/registry ==> 默认情况下,会将仓库存放于容器内的/tmp/registry目录下,指定本地目录/myregistry挂载到容器,可以防止容器意外停止后镜像的丢失。

-p 5000:5000 ==> 前一个5000是host的端口,后一个是容器的端口。这里是将容器的5000端口映射到host的5000端口。

2.4、配置https权限支持

# vim /etc/sysconfig/docker

#添加如下参数

other_args="--exec-driver=lxc --selinux-enabled --insecure-registry 192.168.56.128:5000"

说明:

--insecure-registry 192.168.56.128:5000,表示开启5000端口的非安全模式,也就是http模式。

重启docker服务

2.5、上传镜像到私有registry

(1)下载一个镜像

# docker pull centos:7.2.1511

(2)修改一下该镜像的tag

# docker tag centos:7.2.1511 192.168.56.128:5000/jiangjj/centos:v7.2

说明:

centos:7.2.1511——是镜像的名称和版本

192.168.56.128:5000——私库的ip:端口(必须)

/jiangjj/centos:v7.2——文件夹和版本区分

(3)上传镜像到我的私有registry

# docker push 192.168.56.128:5000/jiangjj/centos:v7.2

报错如下:

docker公共仓库和私有仓库_仓库_03docker公共仓库和私有仓库_仓库_04

修改配置文件

# vim /etc/sysconfig/docker

ADD_REGISTRY='--add-registry 192.168.56.128:5000'

INSECURE_REGISTRY='--insecure-registry 192.168.56.128:5000'

docker公共仓库和私有仓库_Docker_05docker公共仓库和私有仓库_Docker_06

重启服务,启动容器后,重新上传

docker公共仓库和私有仓库_仓库_07docker公共仓库和私有仓库_私有_08

即可

(3)在我的私有registry2上查看镜像

//获取仓库类的镜像

#  curl  http://192.168.56.128:5000/v2/_catalog

docker公共仓库和私有仓库_私有_09docker公共仓库和私有仓库_Docker_10

//获取某个镜像的标签列表:

# curl -X GET http://192.168.56.128:5000/v2/jiangjj/centos/tags/list

docker公共仓库和私有仓库_私有_11docker公共仓库和私有仓库_私有_12

说明:

v2——registry版本

_catalog——相当于查看registry记录日志

/jiangjj/centos——自定义标签

/tags/list——查看tag列表

(4)删除本地镜像

# docker rmi 192.168.56.128:5000/jiangjj/centos:v7.2

2.6、在终端拉取镜像文件

(1)修改配置文件

# vim /etc/sysconfig/docker

ADD_REGISTRY='--add-registry 192.168.56.128:5000'

INSECURE_REGISTRY='--insecure-registry 192.168.56.128:5000'

docker公共仓库和私有仓库_仓库_13docker公共仓库和私有仓库_仓库_14

(2)拉取镜像

# docker pull 192.168.56.128:5000/jiangjj/centos:v7.2

docker公共仓库和私有仓库_仓库_15docker公共仓库和私有仓库_仓库_16

在局域网可以自行搭建dns服务,采用域名拉取镜像。

到此就OK了!!!!