私有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方式:
[root@ip-172~]# 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 rhel-httpd registry-host:5000/myadmin/rhel-httpd $ docker push registry-host:5000/myadmin/rhel-httpd
2、获取镜像
使用docker pull可以获取仓库中的镜像,比如
docker pull registry-host:5000/myadmin/rhel-httpd
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