banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

建立一個 Docker 私有倉庫並提交映像

image

最近搭建 CTFd 平台後,需要結合 docker 做動態 flag 靶場,所以就在本地另起一台機器,做成 docker 私有倉庫,記錄下過程。

建立倉庫並 push 鏡像#

自建私有倉庫需要用到docker registry工具,拉取一個官方 registry 鏡像

docker pull registry:2
  • -v 參數指定倉庫在本地存放的位置。
docker run -d -v C:\Users\lca\Desktop\tools\registry:/var/lib/registry -p 5000:5000 --name ctfregistry registry:2

image

通過上述兩個命令,私有倉庫就建好了,現在可以將鏡像上傳到私有倉庫了,然後從私有倉庫中拉取、搜索、上傳鏡像。

首先拉取個自己已上傳到 hub.docker 上的鏡像。

docker pull liangchenga/dedecms5.7:v1

image

給拉取的鏡像新命名一個標籤

docker tag liangchenga/dedecms5.7:v1 127.0.0.1:5000/dedecms5.7:v1

image

將鏡像 push 到私有倉庫中。

image

在私有倉庫 registry 中也可以看到剛剛 push 的鏡像。

image

訪問http://127.0.0.1:5000/v2/_catalog也可以看到。

image

上傳了私有鏡像後,可以從本地拉取鏡像了。

docker pull 127.0.0.1/鏡像號:版本號
  • 配置內網地址作為倉庫地址

🫥:一定要修改客戶端的配置文件,也就是你自己的主機(電腦),被坑在這裡了。

如果是 linux 系統在 /etc/docker/daemon.json 中添加如下內容:

{
  "registry-mirror": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ],
  "insecure-registries": [
    "192.168.100.156:5000"
  ]
} 

對於 windows 和 mac 在 Docker Engine 中增加如上的設置即可(此處 ip 不一致)。

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "insecure-registries": [
    "172.17.5.106:5000"
  ]
}

image

docker commit 提交鏡像#

在對原有鏡像修改後,如果還想提交鏡像至倉庫,可以通過 docker commit 鏡像提交,docker commit 會在原先鏡像的基礎上加上新增加的層。

首先是建立 tag

docker commit -a "lca" -m "this is a dedecms5.7 website test" 2733a49a020d 127.0.0.1:5000/mydedecms5.7:v2

-a:鏡像製作者名字
-m:註釋
2733a49a020d:原有鏡像名稱
127.0.0.1:5000/mydedecms5.7:v2(新tag)

然後 push 即可

docker push 127.0.0.1:5000/mydedecms5.7:v2

參考#

mac 搭建 docker 私有倉庫
docker 鏡像的發布
https://blog.csdn.net/atzqtzq/article/details/115701143
圖片來自:https://wallhaven.cc/w/5g56p1

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。