搭建 docker registry 私有倉庫並解決報錯Get https://xxx.xxx.xxx.xxx:5000/v1/_ping: http: server gave HTTP resp

lightTrace發表於2018-08-29

為什麼要搭建 docker 私有倉庫
原因有幾個:

  • 專案需要,不希望將專案放到 docker hub 上。
  • 環境需求,考慮網路、效率的問題,希望在私有伺服器上建立自用的倉庫,提高便利性和訪問速度。
  • 可以做更多的個性化配置。
  • 用什麼搭建 docker 私有倉庫
  • docker 官方提供了 registry 的映象,可以使用它來建私有倉庫。

本次搭建的環境
在這裡先說明一下本文的實驗環境:

docker 倉庫伺服器: ubuntu ip地址:192.168.1.101
預設安裝docker

1.先拉取官方 registry 映象,並啟動 registry 容器:

docker pull registry

docker run -d   --name=my-docker-registry  --restart=always -p 5000:5000   -v  /opt/data/registry:/tmp/registry registry  #啟動一個名字為 my-docker-registry 的容器,埠對映到宿主機的5000,掛載宿主機目錄 /opt/data/registry 到容器的 /tmp/registry ,用於儲存 push 進去的映象檔案。   

2.從dockerhub獲取映象並且打上私有倉庫的tag

docker pull nginx
docker  tag  nginx:latest    192.168.1.101:5000/my-nginx

3.push到本地registry

docker push 192.168.1.101:5000/my-nginx

這一步可能會報錯:
Get https://192.168.1.101:5000/v2/: http: server gave HTTP response to HTTPS client

解決辦法,執行命令:

        echo '{ "insecure-registries":["xxx.xxx.xxx.xxx:5000"] }' > /etc/docker/daemon.json

        systemctl restart docker

4.重新push並檢查映象是否上傳成功:

curl localhost:5000/v2/_catalog
{"repositories":["my-nginx"]}

如圖的話就push成功

相關文章