网上找了几篇讲Docker Registry仓库的文章,不是啰啰嗦嗦就是坑太多,没有一个优雅简单的,于是我去官网自己看,做下搭建Registry仓库的总结

首先前提条件是:

1.机器上装有docker,版本最好不要太老

2.网络通畅 (踩过linux网络的坑的同学应该知道我是什么意思)

正片开始了,attention!

docker run -d \
  -p 5000:5000 \
  --restart=always \
  --name registry \
  -v /mnt/registry:/var/lib/registry \
  registry:2

解释一下各个参数,懂的可以跳过了

-d 后台运行

-p 启动端口与本机端口的映射,支持的格式有 ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort

-- restart 重启策略,always 懂得都懂,只要异常退出了就给你重启,除非你手动给他退了

-v 挂载文件到docker 具体请看 dockder volumes 

  registry:2 官方镜像名与版本

这样就搭建完成了,还看啥?

噢,下面是推送本地镜像到私有registry 的操作

先打个tag,才能推送

docker tag ascend_mindspore:1.0.0 10.123.218.169:5000/ascend_mindspore:1.0.0

然后推送

docker push 10.123.218.169:5000/ascend_mindspore:1.0.0

 

巧了,报了个错

Get https://10.123.218.169:5000/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

 

咋解决呢,不知道

踩了一堆坑,然后发现是代理的问题。。这里就不展开介绍了

这个想从局域网访问的话,还需要在docker客户端侧加个配置,参考 https://docs.docker.com/registry/insecure/#deploy-a-plain-http-registry

也就是 编辑 /etc/docker/daemon.json文件,在里面加
 

{
  "insecure-registries" : ["10.123.218.169:5000"]
}

然后就可以了 。。。。