首页 > 代码库 > 搭建docker私有仓库

搭建docker私有仓库

安装Docker

Docker的安装请参考官网(http://www.docker.com),非常详细的介绍了各个操作系统的部署过程。

对于CentOS 7.x操作系统的在线安装Docker,请参考如下:https://docs.docker.com/engine/installation/linux/centos

 

搭建Docker私有仓库

Docker官方提供了一个公有的registry叫做Docker Hub。但是企业内部可能有些镜像还是不方便放到公网上去,所以docker也提供了registry镜像来让需要的人自己搭建私有仓库。

我们这里以Docker官方提供的镜像Registry创建本地私有仓库,创建方式和启动一个普通镜像的方式是一样。


拉取registry镜像

registry需要从Docker Hub先拉取下来:

docker pull registry:2


拉取完成后,可以执行docker images进行查看。

 

启动registry

docker run -d -p 5000:5000 --restart=always \
--name registry \
-v /etc/docker/registry/config.yml:/etc/docker/registry/config.yml \
-v /var/lib/registry:/var/lib/registry \
registry:2

 

registry v2 取消安全认证

registry启动之后,V2版本的默认需要安全链接,私有仓库可以移除。

修改docker服务启动脚本,在/usr/lib/systemd/system/docker.service脚本中添加EnvironmentFile位置,并且增加Docker启动参数$INSECURE_REGISTRY,具体内容如下:

[Unit]

Description=Docker Application Container Engine

Documentation=https://docs.docker.com

After=network.target

 

[Service]

Type=notify

EnvironmentFile=/etc/sysconfig/docker

ExecStart=/usr/bin/dockerd $INSECURE_REGISTRY

ExecReload=/bin/kill -s HUP $MAINPID

MountFlags=slave

LimitNOFILE=1048576

LimitNPROC=1048576

LimitCORE=infinity

TimeoutStartSec=0

# set delegate yes so that systemd does not reset the cgroups of docker containers

Delegate=yes

# kill only the docker process, not all processes in the cgroup

KillMode=process

 

[Install]

WantedBy=multi-user.target

然后新建/etc/sysconfig/docker文件,在里边添加一行

INSECURE_REGISTRY=‘--insecure-registry IP:5000‘

 

 

最后重启Docker

systemctl daemon-reload

systemctl restart docker

 

客户端也同样需要调整,否则将无法从私有仓库pull镜像

cat /etc/sysconfig/docker

INSECURE_REGISTRY=‘--insecure-registry IP:5000‘

ADD_REGISTRY=‘--add-registry IP:5000‘

 

上传镜像到私有镜像仓库

给镜像打个标签:

docker tag centos:7.2 IP:5000/centos:7.2

 

上传镜像到私有镜像仓库:

docker push IP:5000/centos:7.2

 

其他Docker节点从私有镜像仓库中拉取镜像

从私有镜像仓库中拉去之前我们上传的镜像:

[root@dockera ~]# docker pull IP:5000/centos:7.2

7.2: Pulling from centos

a3ed95caeb02: Pull complete

bc4d85eaf590: Pull complete

Digest:sha256:05c5e4ffbd3e4e54a685915394858e1dacc38873f02920b57b66551a1626dbd3

Status: Downloaded newer image for IP:5000/centos:7.2

 

查看拉取的镜像:

[root@dockera ~]# docker images

 

搭建docker私有仓库