如何防止 docker-compose 將雜湊附加到創建的容器名稱?
我有一個帶有幾個 lxc 容器的伺服器。在一些容器中安裝了一個 docker。通常,這些 LXC 容器中的 docker compose 操作會生成格式為 的容器名稱
appname_service_1
,例如wordpress_app_1
,andwordpress_db_1
,whenapp
和db
是在 compose 文件中呼叫的兩個服務wordpress
- 你知道的。但是今天我創建了另一個 LXC 容器並在其中安裝了 docker。由於 ansible,設置與其他容器相同。但是,docker 容器名稱不同,例如
wordpress_db_1_c9de200f9abd
. 每當我刪除容器並重新創建它時,最後的雜湊值都會有所不同。由於這使得容器不像應有的那樣一次性,因為它破壞了容器之間的任何路由,我想知道為什麼要附加這些雜湊值。所有 LXC 容器都安裝了相同的 docker 和相同的 docker-compose 版本。我想在我的 docker 容器名稱中完全防止這些散列。
為什麼它們現在發生而以前沒有發生?
這是 docker-compose 的新行為,反映了 swarm 模式的行為。它根本不會影響通過網路連接容器的能力,因為在您的情況下,始終包含服務名稱的 DNS 別名
app
和db
. 不需要完整的容器名稱來使用循環 DNS 連接到服務的副本。從發行說明:
重要的提示
此版本中 Compose 創建的容器的預設命名方案已從 更改
<project>_<service>_<index>
為<project>_<service>_<index>_<slug>
,其中<slug>
是隨機生成的十六進製字元串。請確保在升級之前相應地更新依賴舊命名方案的腳本。