此案例用两台服务器来测试
服务端ip:192.168.3.1
1.docker 安装 (服务端和客户端)
yum install docker-io
2.启动私有仓库 (服务端)
docker pull registry
docker run -d -v /registry:/var/lib/registry -p 5000:5000 --restart=always --privileged=true --name registry registry:latest
3.制作镜像并push到仓库(客户端)
docker pull ubantu
docker tag ubuntu 192.168.3.1:5000/ubuntu:latest
docker push 192.168.3.1:5000/ubuntu:latest
4.启动仓库管理界面
docker run -d -e ENV_DOCKER_REGISTRY_HOST=192.168.3.1 -e ENV_DOCKER_REGISTRY_PORT=5000 -p 8081:80 konradkleine/docker-registry-frontend:v2 启动管理界面
界面访问 http://192.168.3.1:8081
常见的问题:
客户端push报
The push refers to a repository [192.168.3.1:5000/ubantu]
Get https://192.168.3.1:5000/v1/_ping: http: server gave HTTP response to HTTPS client
Get https://192.168.3.1:5000/v1/_ping: http: server gave HTTP response to HTTPS client
原因是docker私有仓库服务器,默认是基于https传输的,所以我们需要在客户端192.168.3.1做相关设置,不使用https传输
[root@localhost ~]# vi /etc/docker/daemon.json
将下面的代码放进去保存并退出。
"insecure-registries":["192.168.3.1:5000"]
最后重启docker