使用官方镜像创建registry仓库容器: 下载官方registry镜像: #docker pull registry 在本地创建registry仓库容器: #mkdir -p /opt/data/registry #docker run -idt -p 5000:5000 --name registry -v /opt/data/registry/:/tmp/registry registry //以上命令会创建一个名为registry的容器,并把容器中的5000端口映射到宿主机的5000端口上,并把容器中的/tmp/registry目录挂载到本地/opt/data/registry目录。 执行: curl http://192.168.3.112:5000/v2/_catalog 能看到json格式的返回值时,说明registry已经运行起来了
//查看当前已经有的镜像 docker images
将docker.io/metabase/metabase镜像tag为192.168.3.112:5000/docker.io/metabase/metabase,并尝 试上传到本地仓库192.168.3.112:5000。 给你需要上传得镜像打上tag标记,目的:就和官方仓库一样,给出标识,防止出现重名情况 #docker tag 069b94c4ff70 192.168.3.112:5000/docker.io/metabase/metabase 上传镜像到仓库 #docker push 192.168.3.112:5000/docker.io/metabase/metabasedockers registry V2 版本客户端默认使用https协议去push镜像到仓库服务器,而现在我们的仓库服务器只配置了支持http,所以客户端会push镜像失败(Docker的默认push是失败的,因为缺少认证。在自定义仓库的时候可以push成功) 错误消息为:http: server gave HTTP response to HTTPS client 如要希望docker客户端支持http协议,需在启动docker时加入参数 --insecure- registry your_registry_ip:port 编辑/usr/lib/systemd/system/docker.service文件 增加--insecure-registry参数
重启docker服务 systemctl daemon-reload systemctl restart docker.service 之后修改
重启docker服务 然后再push镜像,发现成功 最后查看镜像在仓库中是否存在:访问仓库地址
在dockerhub创建仓库: 登录后,创建自己的仓库
查看本地镜像
选择要上传的镜像,打上tag标记,目的:就和官方仓库一样,给出标识,防止出现重名情况 #docker tag 069b94c4ff70 192.168.3.112:5000/docker.io/metabase/metabase 上传到dockerhub的仓库:
出现上图内容,表示上传成功,可以登录查看
测试下载:
成功! ps: 复制多次: 1.一台机器上多次拉去镜像,只会存在一个 2.只拉取一次,但是修改tag会出现多个镜像
声明:此博客为个人学习之用,如与其他作品雷同,纯属巧合,转载请指明出处!
标签:metabase,5000,自定义,仓库,registry,镜像,docker From: https://www.cnblogs.com/zhihuifan10/p/18233099