Docker-搭建Docker Registry

私有Docker Registry的部署和配置

从Docker Hub上可以获取官方的Registry的镜像,Registry 默认的对外服务端口是 5000,如果我们宿主机上运行的 Registry 需要对外提供服务,可以通过映射端口的方式提供。

1 docker pull registry  //获取registry镜像文件
2 
3 docker images  //查看本地的registry镜像文件
4 REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
5 registry                latest              047218491f8c        4 days ago          33.17 MB
6 
7 docker run -d -p 5000:5000 --restart=always --name registry registry:latest  //运行一个registry的容器

验证

1 如果/var/lib/registry映射到宿主机器的目录(比如/opt/registry),可以push一个镜像到本地的registry,然后会在/opt/registry下找到镜像相关的内容

2 通过registry提供的API方式:

curl http://127.0.0.1:5000/v2/_catalog
{"repositories":["mongodb"]}
[root@ip-172~]# curl http://127.0.0.1:5000/v2/mongodb/tags/list
{"name":"mongodb","tags":["1.0"]}

使用Registry管理仓库和镜像

1、推送镜像

使用docker push可以将本地的镜像推送到本地的仓库

$ docker tag registry registry-host:5000/myadmin/registry

$ docker push registry-host:5000/myadmin/registry

推送出现如下错误

docker push 192.168.0.130:5000/myadmin/registry
The push refers to repository [192.168.0.130:5000/myadmin/registry]
Get https://192.168.0.130:5000/v2/: http: server gave HTTP response to HTTPS client

centos下docker版本在/etc/sysconfig/docker文件中添加一下配置:

ADD_REGISTRY='--insecure-registry 192.168.0.130:5000'

centos下docker-ce版本在 /usr/lib/systemd/system/docker.service修改如下配置:

# ExecStart=/usr/bin/dockerd
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.0.130:5000

修改完后重启docker

Docker-搭建Docker Registry_第1张图片

2、获取镜像

使用docker pull可以获取仓库中的镜像,比如

docker pull registry-host:5000/myadmin/registry

Docker Registry的配置

Docker Registry的配置是基于一个YAML文件,所以可以在创建Registry容器的时候把已经编辑好的YAML文件拷贝进去,也可以在创建容器的时候通过命令传入配置项。

拷贝YAML文件的例子:

1 $ docker run -d -p 5000:5000 --restart=always --name registry \
2              -v `pwd`/config.yml:/etc/docker/registry/config.yml \
3              registry:2

详细的配置参考官方配置说明。

你可能感兴趣的:(Docker)