我可以配置 docker 以便在不指定註冊表名稱的情況下在我的註冊表中查找映像嗎?

我可以配置 docker 以便在不指定註冊表名稱的情況下在我的註冊表中查找映像嗎?

我已經設定了一個 docker 註冊表,並將一個專案推送到hellodocker其中。在另一台機器上,我已經登入我的註冊表,但是當我嘗試拉取時,我必須使用全名:mydockerregistry.com/hellodocker

有沒有辦法配置 docker 以將我的註冊表包含為可以從中下載“未找到”映像的位置?

答案1

我不會推薦它用於此目的,但您可以使用註冊表映像設定來配置 docker 引擎。從dockerdCLI 來看,這就是--registry-mirror標誌。或在 /etc/docker/daemon.json 中,可以設定:

{ "registry-mirrors": ["https://mydockerregistry.com"] }

配置 daemon.json 時,您需要在套用變更後重新載入 docker 引擎。在桌面 GUI 中,這是螢幕上的選項。在 Linux 中,您將運行systemctl reload docker.

這有兩個警告:

  1. 首先輪詢註冊表映像,然後在出現任何故障時輪詢上游 docker hub 來尋找映像。如果映像響應一個壞的或舊的映像,docker 引擎會很樂意使用它。

  2. 沒有儲存庫前綴的映像來自docker庫,將搜尋映像mydockerregistry.com/library/hellodocker而不是mydockerregistry.com/hellodocker.因此您需要:

    docker tag hellodocker:latest mydockerregistry.com/library/hellodocker:latest
    docker push mydockerregistry.com/library/hellodocker:latest
    

我有一個關於鏡像和快取的演示文稿,您可能會發現它很有用:

相關內容