Centos7 Docker私有仓库搭建

仓库:集中存放镜像的地方,可分为公共仓库和私有仓库
(公共仓库"http://hub.docker.com"或国内的"http://www.daocloud.io")

Registry:注册服务器才是存放仓库具体的服务器(Registry),每个服务器上都可以放置多个仓库,而每个仓库上可以放置多个镜像,每个镜像上可以运行多个容器,每个容器上可以跑一个应用或应用组。

搭建docker仓库有两种方式:

方式一:在同一台服务器搭建仓库和客户端(属于本地搭建)
方式二:两台服务器一个是仓库,一个是客户端(属于本地搭建)
注:本文使用方式二搭建,也建议在真实环境中使用这种方式搭建!

环境:

系统:两台centos7 -3.10.0-327.el7.x86_64
Docker版本:docker-1.13.1-63
IP:Docker客户端地址:192.168.152.158
Docker私有仓库地址:192.168.152.159
注:清空并关闭以上环境主机的防火墙和selinux

关闭防火墙 systemctl stop firewalld.service
禁止防火墙开机自启 systemctl disable firewalld.service

关闭selinux sed -i 's/SELINUX=enforcing /SELINUX=disabled/g'
/etc/sysconfig/selinux

重启 reboot

一、安装Docker客户端:192.168.152.158(第一台服务器)

本文基于上一篇docker安装文章继续搭建的,在安装docker客户端部分大家可以参考上一篇文章:安装Docker
1、指定私有仓库服务器地址及端口 vi /etc/sysconfig/docker
OPTIONS='--insecure-registry 192.168.152.159:5000'
Centos7 Docker私有仓库搭建_第1张图片
注:修改/etc/sysconfig/docker(Ubuntu下配置文件地址为:/etc/init/docker.conf),增加启动选项(已有参数的在后面追加),之后重启docker,不添加报错,https证书问题。

//重启docker systemctl restart docker

二、搭建Docker私有仓库:192.168.152.159(第二台服务器)

1、安装docker yum -y install docker
Centos7 Docker私有仓库搭建_第2张图片

2、升级依赖包 yum -y install upgrade device-mapper-libs
Centos7 Docker私有仓库搭建_第3张图片

3、启动docker服务 systemctl start docker

4、开机自启docker服务 systemctl enable docker

5、查看docker版本信息 docker version

6、下载registry镜像(该镜像用于构建本地私有仓库环境)
docker pull registry
Centos7 Docker私有仓库搭建_第4张图片
注:由于国内网络问题直接连接官网下载可能会超时,可以重试几次。
//查看下载registry镜像 docker images
Centos7 Docker私有仓库搭建

//递归创建镜像存放目录 mkdir -p /opt/data/registry
Centos7 Docker私有仓库搭建

7、运行镜像并将容器5000端口映射到linux主机5000端口,并将镜像下载到/opt/data/registry/目录下(默认为/var/lib/registry目录)命令如下:
Centos7 Docker私有仓库搭建
注释:
i:保持sdtin开放状态
d:使容器以守护进程方式后台运行,并打印容器id
t:分配一个tty(虚拟终端设备)
v: 绑定挂载一个容器内的路径到宿主机路径
p:映射一个容器的端口到宿主机端口
restart:当容器退出时的重启策略
name: 给容器命名一个名称
-–privileged=true :CentOS7中的安全模块selinux把权限禁掉了,参数给容器加特权,不加上传镜像会报权限错误
-v /opt/data/registry:/var/lib/registry:默认情况下,会将仓库存放于容器内的/tmp/registry目录下,指定本地目录挂载到容器

三、客户端上传镜像(先切换到客户端在执行)

1、从公共仓库拉取httpd镜像 docker pull httpd

2、查看拉取镜像 docker images
Centos7 Docker私有仓库搭建

3、修改镜像的tag docker tag 原名 修改名
docker tag httpd 192.168.152.159:5000/httpd
Centos7 Docker私有仓库搭建_第5张图片

4、把打了tag的镜像上传到私有仓库
docker push 192.168.152.159:5000/httpd
Centos7 Docker私有仓库搭建_第6张图片

5、查看镜像的存储目录和文件(此命令在仓库服务器上运行查看)
tree /opt/data/registry/docker/registry/v2/repositories/
Centos7 Docker私有仓库搭建_第7张图片

6、测试从仓库拉取镜像
1)删除docker客户端镜像 docker rmi 192.168.152.159:5000/httpd
Centos7 Docker私有仓库搭建_第8张图片
Centos7 Docker私有仓库搭建

2)从仓库拉取刚才删除的镜像 docker pull 192.168.152.159:5000/httpd
Centos7 Docker私有仓库搭建_第9张图片
注:以上操作完成docker仓库搭建!