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 大功告成 !===========================================

Tags: