Docker將鏡像文件發布到私服庫
上一篇已經介紹如何將鏡像發布到阿里云://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 大功告成 !===========================================