1.從docker官方倉庫下載registry
2.將registry放進容器內
3.在官方下載鏡像上傳本地倉庫
4.私有倉庫docker-registry使用的常見問題
5.配置阿里雲鏡像加速器
假設我外網ip119.23.113.33
1.從docker官方倉庫下載registry
docker pull registry:2.2
此時,查看鏡像docker images 會看見registry
REPOSITORY TAG IMAGE ID CREATED SIZE registry 2.2 ad379b517aa6 4 years ago 225MB
2.將registry放進容器內
默認情況下,倉庫會被創建在容器的 /tmp/registry 下。可以通過 -v 參數來將鏡像文件存放在本地的 指定路徑。 下面的將上傳的鏡像放到 /opt/data/registry 目錄
docker run -d --name=MyRegistry -p 5000:5000 -v /opt/data/registry:/tmp/registry registry:2.2
輸入docker ps 查看已經啟動的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0c8d76e6bc71 registry:2.2 "/bin/registry /etc/…" 11 hours ago Up 9 hours 0.0.0.0:5000->5000/tcp MyRegistry
3.在官方下載鏡像上傳本地倉庫
下載ubuntu
docker pull ubuntu
查看鏡像docker images
REPOSITORY TAG IMAGE ID CREATED SIZE registry 2.2 ad379b517aa6 4 years ago 225MB ubuntu latest 77be327e4b63 4 weeks ago 124MB
修改一下該鏡像的tag標識
docker tag ubuntu 119.23.113.33:5000/ubuntu
查看鏡像docker images
REPOSITORY TAG IMAGE ID CREATED SIZE registry 2.2 ad379b517aa6 4 years ago 225MB ubuntu latest 77be327e4b63 4 weeks ago 124MB 119.23.113.33:5000/ubuntu latest 77be327e4b63 4 weeks ago 124MB
修改tag后的鏡像上傳到私有倉庫
docker push 119.23.113.33:5000/ubuntu
4.常見問題
1.報錯Get https://119.23.110.27:5000/v2/: http: server gave HTTP response to HTTPS client
Docker自從1.3.X之后docker registry交互默認使用的是HTTPS,但是搭建私有鏡像默認使用的是HTTP服務,所以與私有鏡像交時出現以上錯誤。
echo '{ "insecure-registries":["119.23.113.33:5000"] }' > /etc/docker/daemon.json
重啟docker
systemctl restart docker
如果還是不行,可以查看一下,是不是添加了阿里雲的鏡像加速器,刪除就行了
2.報錯Get http://192.168.220.125:5000/v2/: dial tcp 192.168.220.125:5000: connect: connection refused
這是5000端口沒開的原因
5.配置阿里雲鏡像加速器
針對Docker客戶端版本大於 1.10.0 的用戶
您可以通過修改daemon配置文件/etc/docker/daemon.json來使用加速器
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://59kfk4ft.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
感謝閱讀