Docker將映象檔案釋出到私服庫

SportSky發表於2022-05-09

上一篇已經介紹如何將映象釋出到阿里雲: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 大功告成 !===========================================

相關文章