1. 程式人生 > >docker系列之鏡像服務器

docker系列之鏡像服務器

ubuntu ren xxx TP 版本 地址 ubun docke lan

docker 的鏡像服務器 docker-registry 是 docker 項目的組成部分. 前面在談 docker 的命令時, 它的 pull/push 命令就是和鏡像服務器打交道. 並且, docker 的設計之中, 服務器地址不是單獨配置的, 而是作為鏡像名稱的一部分.

鏡像的完整名稱是:

127.0.0.1:5000/zephyr/common:latest

各部分的意思:

  • 127.0.0.1:5000 就是服務器地址
  • zephyr 是名字空間
  • common 是鏡像名
  • latest 是版本

docker-registry 的實現也是開源的, 在 github https://github.com/dotcloud/docker-registry 上拿下源碼就可以跑起來.

拿下源碼之後, 項目中有一個 Dockerfile 文件, 我們可以開始構建鏡像了. build 之前, 因為 GFW 的原因, 我們可以先把 Dockerfile 調整一下, 包括兩部分:

  • 把 ubuntu 的軟件源改成國內的.
  • 把 pip 的源改成國內的.

然後開始構建:

docker build -rm -t registry .

完成之後, 你可以得到一個名為 registry 的鏡像, 直接運行即可:

docker run -p 5000:5000 registry

  

訪問 http://localhost:5000 能得到響應, 一個 docker-registry 服務就起來了.

現在你可以把鏡像提交到上面去:

docker tag xxx 127.0.0.1:5000/zephyr/common
docker push 127.0.0.1:5000/zephyr/common

完成之後, 在瀏覽器中訪問 http://localhost:5000/v1/search 可以看到列表.

獲取鏡像:

docker pull 127.0.0.1:5000/zephyr/common

docker-registry 本身是設計成一套 Web API 的, 具體文檔在 http://docs.docker.com/reference/api/registry_api/ .

docker 本身的服務, 也是有一套基於網絡的 API 可供使用的, 文檔在 http://docs.docker.com/reference/api/docker_remote_api/ .

docker系列之鏡像服務器