【Docker構建私有倉庫】
阿新 • • 發佈:2018-12-25
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,到這裡就結束了.