利用docker搭建本地私有镜像仓库

主机名角色

192.168.3.105  Docker Repository

192.168.3.102  Docker Client

1. 在两台节点分别安装docker

https://www.cnblogs.com/ilifeilong/p/11687143.html

2. 在 3.105 ( Docker Repository ) 节点下载官方提供的registry镜像

docker images

docker search registry

docker pull registry

docker images

3. 在3.105 ( Docker Repository ) 节点新建registry容器

docker run --detach --publish 5000:5000 --name registry-container --hostname registry registry

docker ps

查看当前registry镜像仓库,当前并未有任何镜像

curl -X GET http://192.168.3.105:5000/v2/_catalog

 4. 在3.106(Docker client) 节点上模拟客户端上传和下载镜像

4.1 在3.106 新建文件daemon.json( 默认是没有的!)添加如下内容

 /etc/docker/daemon.json

{
  "registry-mirror": [    "https://registry.docker-cn.com"  ],
  "insecure-registries": [   "192.168.3.105:5000"  ]
}

4.2 在3.106 重启docker服务

systemctl stop docker

systemctl start docker

5. 在3.106  上传镜像

在3.106 为需要上传的映像文件添加新的tag

docker images

docker tag mysql:5.7 192.168.3.105:5000/mysql:5.7

docker images

REPOSITORY                            TAG                IMAGE ID            CREATED            SIZE

192.168.3.105:5000/centos/mysql  5.7            b7138378001a4hours ago4.57GB

在3.106 上传镜像至registry

docker push 192.168.3.105:5000/mysql:5.7

在3.105(在哪都行3.105,3.106或3.107都行)registry查看镜像

curl -X GET http://192.168.3.105:5000/v2/

{"repositories":["mysql"]}

curl -X GET http://192.168.3.105:5000/v2/mysql/tags/list

{"name":"mysql","tags":["5.7"]}

 6. 在3.107下载镜像

3.107上的daemon.json也得手动新建,改成如下。

( 否则从3.105 pull的时候报错。Error response from daemon: Get https://192.168.3.105:5000/v2/: http: server gave HTTP response to HTTPS )见到这个错误,就知道是daemon.json没有改,或者改完没有重新启动docker服务。

 /etc/docker/daemon.json

{

"registry-mirror": [    "https://registry.docker-cn.com"  ],

"insecure-registries": [   "192.168.3.105:5000"  ]

}

然后service docker restart

# docker images


# docker pull 192.168.3.105:5000/mysql:5.7

# docker images

REPOSITORY                            TAG                IMAGE ID            CREATED            SIZE

192.168.3.105:5000/mysql  5.7    b7138378001a5hours ago4.57GB

在3.107 为了方便使用,将下载下来的镜像再命名一份。

# docker tag 192.168.3.105:5000/mysql:5.7 mysql:5.7  (会多了一个镜像,原来的不会删除)

# docker images

[root@centos3 ~]# docker images

REPOSITORY                TAG                IMAGE ID            CREATED            SIZE
192.168.3.105:5000/mysql  5.7                9cfcce23593a        8 days ago          448MB
mysql                      5.7                9cfcce23593a        8 days ago          448MB

在3.107用完了觉得没必要留着了,就删掉该镜像腾出地方

# docker rmi 192.168.3.105:5000/centos/mysql:5.7

# docker images

你可能感兴趣的:(利用docker搭建本地私有镜像仓库)