1. 程式人生 > >【Docker構建私有倉庫】

【Docker構建私有倉庫】

Docker預設不允許非HTTPS方式推送映象,我們可以通過Docker的配置選項來取消此限制:

[[email protected] ~]# cat /etc/docker/daemon.json 
{
  "registry-mirrors": ["http://95822026.m.daocloud.io"],
  "insecure-registries": ["192.168.43.174:5000"]
}
# ⚠️這是Json格式


將上面的檔案寫入到docker服務配置檔案中的[Service]配置項下:

[[email protected] ~]# grep 'EnvironmentFile=/etc/docker/daemon.json' /lib/systemd/system/docker.service
EnvironmentFile=/etc/docker/daemon.json


完事後重新載入systemd並重啟docker:

[[email protected] ~]# systemctl daemon-reload
[[email protected] ~]# systemctl restart docker

下面的步驟將構建一個私有倉庫


下載官方提供的私用倉庫映象,和一個用於測試的映象:

# 下載私用倉庫映象
[[email protected] ~]# docker pull registry

# 下載用於測試的映象
[[email protected] ~]# docker pull hello-world


下載完成後,啟動私有倉庫registry容器:

# 私有倉庫會被建立在容器的/var/lib/registry目錄下
# 可通過-v引數將宿主機的目錄掛載到容器中的目錄,這樣便可在宿主機中檢視映象檔案
[[email protected] ~]# docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry


測試連通性:

[[email protected] ~]# telnet localhost 5000


連通後,開始修改用於測試的映象:

# 修改tag,以docker registry的地址埠開頭
[
[email protected]
~]# docker tag hello-world:latest 192.168.43.174:5000/hello-world:latest


推送本地映象至私有倉庫:

[[email protected] ~]# docker push 192.168.43.174:5000/hello-world


推送後,查詢倉庫:

[[email protected] ~]# curl http://192.168.43.174:5000/v2/_catalog
{"repositories":["hello-world"]}  # 可見,我們的hello-world映象上傳成功了


下載私有倉庫中的映象:

# 先將本地的測試映象刪除了
# 因為上面修改過測試映象的tag,所以本地會有兩個相同ID的映象,這裡我們指定映象ID刪除
[[email protected] ~]# docker rmi -f 4ab4c602aa5e

# 刪除後,再下載倉庫中的映象
[[email protected] ~]# docker pull 192.168.43.174:5000/hello-world

ok,到這裡就結束了.