1. 启动 Docker Registry 容器
在你的虚拟机上运行以下命令,启动一个 Docker Registry 容器:
踩坑勿用,经过多次实验:
docker run -d -p 5000:5000 --name registry --restart=always registry:2 -->容易造成无法访问的问题
请使用:
docker run -d -p 0.0.0.0:5000:5000 --name registry --restart=always registry:2
【如果在后续出现错误,请重启虚拟机试试】
【访问不了5000端口,如果防火墙默认关闭,和防火墙无关】
此命令会在虚拟机上 启动一个监听 5000 端口的 Docker Registry。
拉取失败的话,请修改deamon.json文件,详情见:
sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“https://docker.m.daocloud.io”,“https://p5lmkba8.mirror.aliyuncs.com”,“https://registry.docker-cn.com”]
}
EOF
2. 推送镜像到私有仓库
假设你有一个镜像 my-image:latest,(latest为标签)你可以将其推送到你刚启动的私有仓库:
#为镜像打标签
docker tag my-image:latest :5000/my-image:latest
这里我们使用一个较小内存的镜像做实验
docker tag registry.aliyuncs.com/google_containers/pause:3.2 192.168.174.129:5000/test:testv
3. 配置 HTTP 访问
Docker 默认要求使用 HTTPS 来访问私有仓库。
如果你不想配置 HTTPS,可以在客户端节点上通过以下方式临时允许 HTTP 访问:
编辑 /etc/docker/daemon.json 文件,添加以下内容:
{
“insecure-registries” : [“:5000”]
#如果访问多个镜像仓库,改为”r1:5000”,”r2:5000”即可
}
sudo systemctl restart docker
4. 推送到私有仓库
docker push :5000/my-image:latest
将 替换为你的虚拟机 IP 地址。
5.测试其他节点拉取远程仓库
测试其他节点推送远程仓库:(此时已存在)