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

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。