要在Docker中搭建本地仓库,可以按照以下步骤进行操作:
docker run -d --name registry -p 5000:5000 registry:latest
docker ps
应该能看到类似于 "CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES" 的输出结果,表示容器已经成功创建并处于运行状态。http://localhost:5000
来查看本地仓库了。默认情况下,所有的镜像都存放在 /var/lib/registry/
目录下。docker tag <image_id> localhost:5000/<repository>:<tag>
docker push localhost:5000/<repository>:<tag>
docker pull localhost:5000/<repository>:<tag>
这个错误通常是由于iptables规则的问题导致的。Docker使用iptables来管理网络流量,包括将容器的端口映射到宿主机上。当Docker尝试设置这些规则时,可能会因为某些原因失败。
为了解决这个问题,你可以尝试以下几个步骤:
重启Docker服务:重启Docker服务可以解决网络相关的问题。sudo systemctl restart docker
推送镜像到仓库不支持HTTP:
出现这个错误信息 "Get "https://192.168.136.129:5000/v2/": http: server gave HTTP response to HTTPS client" 意味着你尝试通过 HTTPS 协议去访问一个只支持 HTTP 协议的 Docker 仓库。
这通常发生在以下几种情况:
你可以通过设置 Docker 守护进程的配置来禁用对 HTTPS 的强制使用。这通常涉及到编辑 /etc/docker/daemon.json
文件(如果不存在,则创建它),并添加或修改以下配置:
- {
- "insecure-registries": ["192.168.136.129:5000"]
- }
然后重启 Docker 以使更改生效。然后就可以发布成功了