Docker-registry


Docker-registry

Docker Registry 是一個用於存儲和分發 Docker 映像檔的服務器。它可以讓用戶自己託管映像檔,也可以從公共映像檔庫中拉取映像檔。在此提供一個基於 Docker Compose 的 Docker Registry 教學。


Docker login

  • docker login 是 Docker CLI 提供的指令,可以讓你登入到 Docker registry 並建立認證憑證,以便你可以在該 registry 上 push 或 pull Docker image。

  1. 在你的終端機上,執行以下指令:
docker login <registry>

其中 <registry> 是指你要登入的 Docker registry 的位置。例如,如果你要登入 Docker Hub,則 <registry> 不用填,
在課程中,我們用私有倉庫:https://docker-registry.3anology.info


  1. 當你執行完上面的指令後,你會被提示輸入你的使用者名稱和密碼。輸入正確的認證資訊後,你就成功登入了該 Docker registry。
  2. 如果你要登出已經登入的 registry,可以執行以下指令:
docker logout <registry>

注意事項:

  • 如果你使用的是私有的 Docker registry,請記得在 docker login 指令中加上 registry 的位置。
  • 如果你使用的是 Docker Hub,請注意每個帳號每天只有 100 次的 pull 限制,但是 push 沒有限制。如果需要更多的 pull 次數,可以升級到付費帳戶。

Portainer 使用 Docker-registry


1. 註冊Docker-registry




2. 位置與帳密

3. 試著pull image

image : node-red-test


建立 Docker-registry


1. Docker compose

version: '3' services: registry: # 容器名稱為 registry image: registry:2 # 使用 registry:2 的映像檔 ports: - "15000:5000" # 將容器內部的 5000 Port 對應到主機的 15000 Port volumes: - /volume1/docker/docker-registry/data:/var/lib/registry # 掛載主機上的 /volume1/docker/docker-registry/data 目錄到容器內的 /var/lib/registry 目錄 - /volume1/docker/docker-registry/config:/auth # 掛載主機上的 /volume1/docker/docker-registry/config 目錄到容器內的 /auth 目錄 environment: REGISTRY_AUTH: htpasswd # 啟用 htpasswd 的驗證方式 REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd # 指定驗證檔案為容器內的 /auth/htpasswd REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm # 設定驗證領域為 Registry Realm htpasswd: # 容器名稱為 htpasswd image: xmartlabs/htpasswd # 使用 xmartlabs/htpasswd 的映像檔 command: -Bbn 3anology hNhHrGxzbXL4 # 執行 htpasswd 指令,建立名稱為 3anology 密碼為 hNhHrGxzbXL4 的使用者帳號 volumes: - /volume1/docker/docker-registry/auth:/config # 掛載主機上的 /volume1/docker/docker-registry/auth 目錄到容器內的 /config 目錄 environment: HTPASSWD_FILE: /config/htpasswd # 指定 htpasswd 檔案為容器內的 /config/htpasswd HTPASSWD_USERNAME: 3anology # 設定帳號名稱為 3anology HTPASSWD_PASSWORD: hNhHrGxzbXL4 # 設定帳號密碼為 hNhHrGxzbXL4

2. 使用線上版htpasswd

產生器

Select a repo