系统环境: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
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
报错如下:
修改配置文件
# vim /etc/sysconfig/docker
ADD_REGISTRY='--add-registry 192.168.56.128:5000'
INSECURE_REGISTRY='--insecure-registry 192.168.56.128:5000'
重启服务,启动容器后,重新上传
即可
(3)在我的私有registry2上查看镜像
//获取仓库类的镜像
# curl http://192.168.56.128:5000/v2/_catalog
//获取某个镜像的标签列表:
# curl -X GET http://192.168.56.128:5000/v2/jiangjj/centos/tags/list
说明:
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'
(2)拉取镜像
# docker pull 192.168.56.128:5000/jiangjj/centos:v7.2
在局域网可以自行搭建dns服务,采用域名拉取镜像。
到此就OK了!!!!