创建docker私有仓库

144 阅读2分钟

嫌麻烦,搭建和后期维护不易的话,可以使用一些三方的私有仓库,比如google与平台、阿里云的免费私有仓库 cr.console.aliyun.com/cn-hongkong… 一. 私有docker仓库搭建

  1. 下载registry镜像 docker pull registry

  2. 启动镜像

docker run -d -p 5000:5000 --restart=always --privileged --name registry-container -v /root/container/docker_registry:/var/lib/registry registry

挂载本地路径/root/container/docker_registry 作为docker仓库存放镜像的目录

  1. 查看 查看私有仓库 curl -XGET http://127.0.0.1:5000/v2/_catalog 结果:
    {"repositories":[]}, 仓库好了,但是还是空的

二. 私有仓库操作

  1. 查看本地镜像 docker images
REPOSITORY                       TAG       IMAGE ID       CREATED          SIZE
newspage_type_identify_serving   latest    65f484d95936   35 minutes ago   407MB
tensorflow/serving               latest    e874bf5e4700   12 months ago    406MB
  1. docker tag

这个本地镜像在另一台机器上

docker tag newspage_type_identify_serving:latest 10.0.0.12:5000/newspage_type_identify_serving:v1

再查看一下 docker images

REPOSITORY                                      TAG       IMAGE ID       CREATED          SIZE
newspage_type_identify_serving                  latest    65f484d95936   39 minutes ago   407MB
10.0.0.12:5000/newspage_type_identify_serving   v1        65f484d95936   39 minutes ago   407MB
tensorflow/serving                              latest    e874bf5e4700   12 months ago    406MB
  1. 推送到私有仓库
docker push 10.0.0.12:5000/newspage_type_identify_serving:v1

推送中

The push refers to repository [10.0.0.12:5000/newspage_type_identify_serving]
b6143d4cf84a: Pushed
bb4423850a27: Pushed
b60ba33781cd: Pushed
547f89523b17: Pushed
bd91f28d5f3c: Pushed
8cafc6d2db45: Pushed
a5d4bacb0351: Pushed
5153e1acaabc: Pushed
v1: digest: sha256:cf91b82ac65667b204cb5fd88361467354260e5aee90508b05bea50189eac5da size: 1990

完成后,去仓库的部署机器上查看下
curl -XGET http://127.0.0.1:5000/v2/_catalog
结果: {"repositories":["newspage_type_identify_serving"]}

查看镜像tag curl -XGET http://127.0.0.1:5000/v2/tags/list

  1. 从私有仓库拉取镜像 docker pull 10.0.0.12:5000/newspage_type_identify_serving:v1
v1: Pulling from newspage_type_identify_serving
01bf7da0a88c: Pull complete
f3b4a5f15c7a: Pull complete
57ffbe87baa1: Pull complete
e72e6208e893: Pull complete
6ea3f464ef73: Pull complete
01e9bf86544b: Pull complete
68f6bba3dc50: Pull complete
f9dfc1dfc1e2: Pull complete
Digest: sha256:cf91b82ac65667b204cb5fd88361467354260e5aee90508b05bea50189eac5da
Status: Downloaded newer image for 10.0.0.12:5000/newspage_type_identify_serving:v1
10.0.0.12:5000/newspage_type_identify_serving:v1

拉取成功

REPOSITORY                                      TAG       IMAGE ID       CREATED          SIZE
10.0.0.12:5000/newspage_type_identify_serving   v1        65f484d95936   57 minutes ago   407MB

【报错】

  1. http: server gave HTTP response to HTTPS client docker自从1.3.X之后docker registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以与私有镜像交时出现以上错误

编辑
vim /usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 10.0.0.12:5000

然后重启

systemctl daemon-reload
systemctl restart docker