此案例用兩台服務器來測試
服務端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