私有倉庫

有時候使用 Docker Hub 這樣的公共倉庫可能不方便,使用者可以建立一個本地倉庫供私人使用。本節介紹如何使用本地倉庫。 docker-registry 是官方提供的工具,可以用於建立私有的映像檔倉庫。

安裝執行 docker-registry

容器執行

在安裝了 Docker 後,可以透過取得官方 registry 映像檔來執行。

$ sudo docker run -d -p 5000:5000 registry

這將使用官方的 registry 映像檔來啟動本地的私有倉庫。使用者可以透過指定參數來設定私有倉庫位置,例如設定映像檔儲存到 Amazon S3 服務。

$ sudo docker run \
         -e SETTINGS_FLAVOR=s3 \
         -e AWS_BUCKET=acme-docker \
         -e STORAGE_PATH=/registry \
         -e AWS_KEY=AKIAHSHB43HS3J92MXZ \
         -e AWS_SECRET=xdDowwlK7TJajV1Y7EoOZrmuPEJlHYcNP2k4j49T \
         -e SEARCH_BACKEND=sqlalchemy \
         -p 5000:5000 \
         registry

此外,還可以指定本地路徑(如 /home/user/registry-conf )下的設定檔案。

$ sudo docker run -d -p 5000:5000 -v /home/user/registry-conf:/registry-conf -e DOCKER_REGISTRY_CONFIG=/registry-conf/config.yml registry

預設情況下,倉庫會被建立在容器的 /tmp/registry 下。可以透過 -v 參數來將映像檔檔案存放在本地的指定路徑。 例以下面的例子將上傳的映像檔放到 /opt/data/registry 目錄。

本地安裝

對於 Ubuntu 或 CentOS 等發行版,可以直接透過套件庫安裝。

  • Ubuntu

  • CentOS

也可以從 docker-registry 專案下載原始碼進行安裝。

然後修改設定檔案,主要修改 dev 模板段的 storage_path 到本地的儲存倉庫的路徑。

之後啟動 Web 服務。

或者

此時使用連結本地的 5000 連接埠,看到輸出 docker-registry 的版本訊息說明執行成功。

*註:config/config_sample.yml 檔案是範例設定檔案。

在私有倉庫上傳、下載、搜尋映像檔

  1. 建立好私有倉庫之後,就可以使用 docker tag 來標記一個映像檔,然後推送它到倉庫,別的機器上就可以下載下來了。例如私有倉庫位址為 192.168.7.26:5000

  2. 先在本機查看已有的映像檔。

  3. 使用docker tagba58 這個映像檔標記為 192.168.7.26:5000/test(格式為 docker tag IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG])。

  4. 使用 docker push 上傳標記的映像檔。

  5. 用 curl 查看倉庫中的映像檔。

    這裡可以看到 {"description": "", "name": "library/test"},表明映像檔已經被成功上傳了。

  6. 現在可以到另外一臺機器去下載這個映像檔。

  7. 可以使用 這個腳本 批次上傳本地的映像檔到註冊伺服器中,預設為本地註冊伺服器 127.0.0.1:5000。例如:

Last updated

Was this helpful?