私有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
詳細的配置參考官方配置說明。