建立私有的 Docker Registry

執行 docker run -d -p 5000:5000 -v /home/vagrant/docker/registry:/tmp/registry --restart=always --privileged=true registry

# 以下為參數設定解釋:

# -p 5000:5000 是將指到 host port 5000 的流量導到 Docker Registry port 5000。

# -v /home/vagrant/docker/registry:/tmp/registry 是將 host 的 /home/vagrant/docker/registry 連結到 Docker Registry 的 /tmp/registry,如此上傳到 Docker Registry 的映像檔可以直接在 Host 上看到,方便備份。

# --restart=always 當 Docker 重啟時會啟動此容器。

# --privileged=true容器将拥有访问 Host 所有设备的权限。解決SELinux檔案權限的問題。

參考:

測試

  1. 在電腦1上,把映像檔上傳至私有的 Docker Registry:
  1. docker pull docker.io/ubuntu # 從 docker.io 下載
  2. docker tag docker.io/ubuntu 140.91.101.235:5000/hi # 映像檔新增標籤用來上傳
  3. docker push 140.91.101.235:5000/hi # 上傳
  1. 在電腦2上,到私有的 Docker Registry 下載映像檔:
  1. docker pull 140.91.101.235:5000/hi # 下載映像檔

遇到問題

私有 Registry 不支援 https

螢幕快照 2015-06-15 上午8.46.40.png

修改要上傳主機的 Docker 設定檔:

  1. 編輯 /etc/sysconfig/docker
  2. 加入 --insecure-registry ${IP}:${PORT}
  3. 重啟 Docker service docker restart

參考:Docker Private Registry