上一篇已經介紹如何將映象釋出到阿里雲:https://www.cnblogs.com/sportsky/p/16246394.html
一、建立新映象檔案
1、建立容器並在容器內建立檔案
在根目錄下建立 /xiaohemiao/test.txt 並在test.txt檔案中寫入一些內容
2、提交容器副本使之成為一個新的映象
# 提交格式
docker commit -m="提交的描述資訊" -a="作者" 容器id 要建立的目標映象名:[標籤名,也就是版本號]
二、本地映象推送到私有庫
1、下載映象Docker Registry
docker pull registry
2、建立本地私有容器庫
# 建立一個名為registry的容器,將宿主機5000埠對映到容器的5000埠,將宿主機的/myregistry目錄對映到容器/tmp/registry目錄作為資料容器卷
docker run -id -p 5000:5000 -v /myregistry/:/tmp/registry --privileged=true registry
預設情況,倉庫被建立在容器的/var/lib/registry目錄下,建議自行用容器卷對映,方便與宿主機聯調
3、curl驗證私服庫上的映象
# IP地址是自己宿主機的ip,埠號是剛剛建立容器對映的宿主機埠
curl -XGET http://192.168.140.129:5000/v2/_catalog
4、將新映象myredis:latest修改符合私服規範的Tag
# 格式 docker tag 映象名稱:版本號 ip:埠/映象名稱:版本號
docker tag myredis:latest 192.168.140.129:5000/myredis:latest
5、修改配置檔案使之支援http
vi /etc/docker/daemon.json
新增如下配置:insecure-registries":["192.168.140.129:5000"]
上述理由:docker預設不允許http方式推送映象,通過配置選項來取消這個限制,修改完後如果不生效,建議重啟docker
6、push推送到私服庫
# 後臺配置重新載入
systemctl daemon-reload
# 重啟docker服務
systemctl restart docker
# 檢視配置的埠號(5000)是否開啟(非必要)
netstat -nlpt
# 推送到私服
docker push 192.168.140.129:5000/myredis:latest
7、重新檢視私服庫映象有哪些
# 檢視私服映象檔案(ip地址修改成自己宿主機的ip)
curl -XGET http://192.168.140.129:5000/v2/_catalog
三、pull私服映象
首先先刪掉目前docker上的映象,然後再從私服映象pull
# pull私服映象(ip地址填寫當前宿主機的ip和埠)
docker pull 192.68.140.129:5000/myredis:latest
================================Ending 大功告成 !===========================================