CentOS7搭建Docker私有仓库

524 阅读3分钟
原文链接: blog.csdn.net

(一)前言

1.什么是Docker私有仓库Registry

官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么你就需要Docker Registry,它可以用来存储和管理自己的镜像。

2.准备环境

192.168.84.104(服务端)

192.168.84.100(客户端)

3.版本

CentOS Linux release 7.4.1708

Docker 18.03.1-ce

(二)服务端操作

执行以下命令安装Docker:

  1. yum remove -y docker docker-common docker-selinux docker engine   
  2. yum install -y yum-utils device-mapper-persistent-data lvm2   
  3. yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  
  4. yum makecache fast  
  5. yum install -y docker-ce  
yum remove -y docker docker-common docker-selinux docker engine 
yum install -y yum-utils device-mapper-persistent-data lvm2 
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install -y docker-ce

安装好之后,启动Docker,并加入开机启动:

  1. systemctl start docker.service  
  2. systemctl enable docker.service  
systemctl start docker.service
systemctl enable docker.service

停止并关闭防火墙

[html]
  1. systemctl stop firewalld.service  
  2. systemctl disable firewalld.service  
systemctl stop firewalld.service
systemctl disable firewalld.service

拉取本地私有仓库

  1. docker pull registry  
docker pull registry

查看本地镜像

  1. docker images  
docker images

基于私有仓库镜像运行容器

  1. docker run -it -d -p 5000:5000 --name registry registry  
docker run -it -d -p 5000:5000 --name registry registry

或者通过以下命令运行

  1. docker run -d -v /home/docker/registry:/var/lib/registry -p 5000:5000 --restart=always  --privileged=true --name registry registry:latest  
docker run -d -v /home/docker/registry:/var/lib/registry -p 5000:5000 --restart=always --privileged=true --name registry registry:latest

查看是否启动成功

  1. [root@swarm4 docker]# docker ps -a  
  2. CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES  
  3. bf15afdcd480        registry            "/entrypoint.sh /etc…"   2 hours ago         Up About an hour    0.0.0.0:5000->5000/tcp   registry  
[root@swarm4 docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
bf15afdcd480        registry            "/entrypoint.sh /etc…"   2 hours ago         Up About an hour    0.0.0.0:5000->5000/tcp   registry

然后访问: http://192.168.84.104:5000/v2/ 出现如下数据说明启动成功


从 Docker 私有仓库上拉取一个镜像测试

  1. docker pull nginx  
docker pull nginx

创建镜像链接为基础镜像打个标签

  1. docker tag nginx 192.168.84.104:5000/nginx  
docker tag nginx 192.168.84.104:5000/nginx

上传镜像到本地仓库

  1. docker push 192.168.84.104:5000/nginx  
docker push 192.168.84.104:5000/nginx

查看私有仓库镜像

  1. http://192.168.84.104:5000/v2/nginxbox/tags/list  
http://192.168.84.104:5000/v2/nginxbox/tags/list

(三)客户端操作

前几步和上面一样,需要先安装Docker,并启动Docker,然后修改Docker配置文件(没有则创建):

  1. vim /etc/docker/daemon.json  
vim /etc/docker/daemon.json

加入私有仓库的地址:

  1. {  
  2. "insecure-registries":["192.168.84.104:5000"]  
  3. }  
{
"insecure-registries":["192.168.84.104:5000"]
}

重启 docker 服务

  1. systemctl daemon-reload  
  2. systemctl restart docker   
systemctl daemon-reload
systemctl restart docker 

测试从私有仓库中拉取 nginx 镜像

  1. docker pull 192.168.84.104:5000/nginx  
docker pull 192.168.84.104:5000/nginx

查看镜像

  1. docker images  
docker images