如何建立私人的 docker registry 架設教學 (三)


Docker Registry 主機架好了,但要怎麼查詢你需要的 Docker Image 或 Tag 號呢?

  • 使用指令進行查詢
  • 架設一台 Docker Web UI

架設一台 Docker Web UI

使用 hyper/docker-registry-web 所提供的 Docker Web UI 工具來顯示 Docker Registry 放了哪些Docker Image

先登入到你的 Docker Registry 主機,進行 docker run 安裝 hyper/docker-registry-web,使用 docker run -d -p 8080:8080 --name registry-web --link registry -e REGISTRY_URL=http://docker-registry.com.cc:5000/v2 hyper/docker-registry-web

[root@Docker-Registry ~]# docker run -d -p 8080:8080 --name registry-web --link registry -e REGISTRY_URL=http://docker-registry.com.cc:5000/v2 hyper/docker-registry-web
Unable to find image 'hyper/docker-registry-web:latest' locally
Trying to pull repository docker.io/hyper/docker-registry-web ... 
latest: Pulling from docker.io/hyper/docker-registry-web
04c996abc244: Pull complete 
d394d3da86fe: Pull complete 
bac77aae22d4: Pull complete 
//================(略)================
88a8c7267fbc: Pull complete 
f9371a03010e: Pull complete 
Digest: sha256:723ffa29aed2c51417d8bd32ac93a1cd0e7ef857a0099c1e1d7593c09f7910ae
Status: Downloaded newer image for docker.io/hyper/docker-registry-web:latest
feb159e47a314223fc27de05fcfc941a3df926f93d84070501cc22c8d8cf2a4a

執行 docker ps -a 確認 Docker-registry-web 服務是否起來

[root@Docker-Registry ~]# docker ps -a
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                    NAMES
feb159e47a31        hyper/docker-registry-web   "start.sh"               29 seconds ago      Up 28 seconds       0.0.0.0:8080->8080/tcp   registry-web
d1051af4a499        registry:latest             "/entrypoint.sh /e..."   About an hour ago   Up 30 minutes       0.0.0.0:5000->5000/tcp   registry

確認服務運作後,可以在瀏覽器上輸入網址確認 http://docker-registry.com.cc:8080 可以看到你目前 docker container name:registry 上的 images

點選 php72-base 後可以進入查看目前的 Tags 有哪一些

點選 Tag 後可以查看該 Tag 號下的相關資訊

常見問題

輸入網址後 http://docker-registry.com.cc:8080 出現錯誤訊息 I/O error on GET request for "http://docker-registry.com.cc.2:5000/v2/_catalog?n=100":No route to host; nested exception is java.net.NoRouteToHostException: No route to host ,因為在 docker container name:registry-web 無法請求到 docker-registry.com.cc:5000 主機會出現以下的錯誤畫面。

可以改寫你的 docker run 指令,將 hostname 改成你的 docker container name,如:使用 docker run -d -p 8080:8080 --name registry-web --link registry -e REGISTRY_URL=http://registry:5000/v2 hyper/docker-registry-web

再輸入網址:http://docker-registry.com.cc 就會正常了。