docker net core

教你搞定Docker私有仓库Registry(Dockerfor

2018-11-26  本文已影响21人  return997

私有注册表基于docker 1.10.3运行良好,但在docker更新到1.12.0后我无法拉/推图像。

当我将docker更改为1.10.3时,它仍然可以正常工作如下:

docker version查看docker版本

一、什么是Docker私有仓库Registry

            官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么你就需要Docker Registry,它可以用来存储和管理自己的镜像。

二、安装Docker及Registry

1:centos7安装docker

2:安装Registry:

很简单,只需要运行一个Registry容器即可(包括下载镜像和启动容器、服务)

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

这就我们所拉的registry镜像

以及容器

但是我在docker push/pull时会报错

unable to ping registry endpoint https://172.18.3.22:5000/v0/

v2 ping attempt failed with error: Get https://172.18.3.22:5000/v2/: http: server gave HTTP response to HTTPS client

这是由于Registry为了安全性考虑,默认是需要https证书支持的.

但是我们可以通过一个简单的办法解决:

Dockerforwindows

<ip>:5000

contos:

方案一:

#vi /etc/docker/daemon.json

{ "insecure-registries": ["<ip>:5000"] }

#systemctl daemon-reload

#systemctl restart docker

注:<ip>:Registry的机器ip地址,在安装registry的节点和客户端需要访问私有Registry的节点都需要执行此步操作。

以上第一种我是没有成功,不过小伙伴的可以尝试一下

方案二:

这是我在国外网站翻译的(一个英语渣渣看不懂)

OPTIONS='--selinux-enabled=true --insecure-registry=myip:5000'

OPTIONS='--selinux-enabled=true --insecure-registry myip:5000'

以上请将myip设置为自己服务器ip

方案三:(没试过)

好了以上错误和环境都解决和准备好了开始push到私有仓库吧


第一步:

首先build我们的镜像

mvn clean package docker:build


查看镜像


第二步:

通过 docker tag重命名镜像,使之与registry匹配

docker tag xe-alipay/xe-alipay <ip>:5000/xe-alipay:latest

第三步:
上传到registry

docker push <ip>:5000/xe-alipay:latest


第四部:

查看registry中所有镜像信息

curl http://<ip>:5000/v2/_catalog

返回

{"repositories":["centos6.8","jenkins1.638","nginx","redis3.0","source2.0.3","zkdubbo"]}


push到服务器后 docker images看不到push的镜像信息怎么办呢 不要急


我们只需要docker pull <ip>:5000/xe-alipay:latest 等待pull完就可以启动了

上一篇 下一篇

猜你喜欢

热点阅读