最近搭建 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