最近搭建 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
通過上述兩個命令,私有倉庫就建好了,現在可以將鏡像上傳到私有倉庫了,然後從私有倉庫中拉取、搜索、上傳鏡像。
首先拉取個自己已上傳到 hub.docker 上的鏡像。
docker pull liangchenga/dedecms5.7:v1
給拉取的鏡像新命名一個標籤
docker tag liangchenga/dedecms5.7:v1 127.0.0.1:5000/dedecms5.7:v1
將鏡像 push 到私有倉庫中。
在私有倉庫 registry 中也可以看到剛剛 push 的鏡像。
訪問http://127.0.0.1:5000/v2/_catalog
也可以看到。
上傳了私有鏡像後,可以從本地拉取鏡像了。
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"
]
}
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