Docker镜像推送到私服

一、下载Docker Registry镜像,相当于本地有个私有的Docker hub。

docker pull registry


二、运行本地私有库Registry。

docker run -d -p 5000:5000  -v /lingon/myregistry/:/tmp/registry --privileged=true registry
  • 含义解释:
  • docker run                  // 运行容器
  • -d                                // 守护式容器,也称后台运行
  • -p 5000:5000              // 端口映射  [ 主机端口:容器端口 ]
  • -v                                //  /宿主机绝对路径目录:/容器内目录 镜像名
  • 默认情况,仓库被创建在容器的/var/lib/registry目录下,建议自行用容器卷映射,方便宿主机联调。

可通过 docker ps 查看是否运行成功(列出正在运行的容器)。

下列图片中有一个正在运行中的容器,该容器就是 私服

私服库对外暴露端口号为5000


三、将需要上传的镜像修改为符合私服规范的Tag。

# 例如:我想将ubuntu镜像推送到私服中
# docker tag 本地镜像:[版本号] 主机ip:对外暴露的端口号/镜像:[版本号]

docker tag ubuntu 192.168.138.156:5000/ubuntu

命令输入后,查看镜像列表。有一个主机ip:端口号/ubantu的镜像,这就是经过规范化的镜像。 


 四、修改配置文件,使之支持http。

由于docker的私服库做了安全加密,默认不支持http访问,所以需要修改配置。

vim /etc/docker/daemon.json

在该json格式中额外添加一条(注意!json两字段间需要加逗号隔开!):

 "insecure-registries": ["主机ip:5000"]


 五、上传镜像到私服库。

  • 由于修改了配置文件,所以需要重启Docker。
  • 如果提示有容器正在运行导致重启失败,应该先关掉容器,再重启。
  • 重启后查看docker状态。
systemctl restart docker
systemctl status docker
  • 重启docker后,所有的容器都停止运行,需要重新运行私服库。
docker run -d -p 5000:5000  -v /lingon/myregistry/:/tmp/registry --privileged=true registry
  • 镜像上传到私服库。
# docker push 镜像:[版本号]
docker push 192.168.138.156:5000/ubuntu


六、验证私服是否已经成功上传该进行。

curl -XGET http://192.168.138.156:5000/v2/_catalog

 私服库中已经显示存在 'ubantu' 镜像,成功将镜像上传到私服!


7、从私服上拉取镜像。

  • 首先删掉原先的规范化的镜像。 

  • 拉取私服上的镜像:docker pull 主机ip:暴露的端口号/镜像名:[版本号]
docker pull 192.168.138.159:5000/ubuntu
  • 此时再查看 docker images ,会发现私服上的镜像已经被拉取下来了。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值