搭建Docker Registry
服务器IP: 192.168.25.201
1.安装Docker
安装最新版Docker,自行百度。
2. 运行Registry
1 | docker run -d -v /data/registry:/var/lib/registry \ |
参数说明:
-d:后台运行;
-v:把宿主机的/data/registry目录绑定 到 容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化;
-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了;
–restart=always:这是重启的策略,假如这个容器异常退出会自动重启容器;
–name registry:创建容器命名为registry,你可以随便命名;
registry:latest:这个是刚才pull下来的镜像,如果本地无此镜像,会自动下载。
等待启动成功。
3. 测试
命令行执行
1 | curl http://192.168.25.201:5000/v2/_catalog |
或者浏览器访问
1 | http://192.168.25.201:5000/v2/_catalog |
安装 docker-registry-web
安装WebUI,增加仓库的可读性,方便用户查看。
1.拉取镜像
1 | docker pull hyper/docker-registry-web |
2. 启动WebUI同时链接仓库
1 | docker run -d --restart=always -p 5001:8080 --name registry-web \ |
这里的–link 是上面的容器名registry
3.访问Web
4. 客户端修改daemon.json
Linux 端文件在/etc/docker/daemon.json
没有就创建
registry-mirrors
镜像仓库
insecure-registries
仓库私服
要符合json
格式.不然会报错。
1 | ➜ ~ cat /etc/docker/daemon.json |
上传到私服的镜像需要重命名,添加192.168.25.201:5000
前缀。比如:
1 | docker pull busybox |
为镜像打标签
1 | docker tag busybox:lastest 192.168.25.201:5000/busybox:v1 |
格式说明:Usage: docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
192.168.25.201:5000/busybox:v1:这是目标镜像,也是registry私有镜像服务器的IP地址和端口;
上传到镜像服务器
1 | docker push 192.168.25.201:5000/busybox:v1 |
这是发现报错了
1 | The push refers to repository [192.168.192.114:5000/busybox] |
注意了,这是报错了,需要https的方法才能上传,我们可以修改下仓库端 daemon.json来解决:
1 | vim /etc/docker/daemon.json |
添加私有镜像服务器的地址,注意书写格式为json,有严格的书写要求,然后重启docker服务:
1 | systemctl restart docker |