[英]How to make `docker-compose up $container_name` to attache not only to $container_name but to all containers it depends on?
[英]How to set container_name in docker-compose for swarm deployment?
我使用docker stack deploy -c docker-compose.yml my-service
容器
問題: docker service ls
始終使用my-service_my-service
顯示NAME
,由 docker-compose 生成:
services:
my-service:
#container_name #not supported when using 'docker stack deploy'
ports:
- "8090:8080"
...
這是因為將docker stack deploy中的名稱作為堆棧名稱,將服務形式 docker-compose 作為服務名稱。
因此,生成的名稱是stackname_servicename
。
問題:如何強制在沒有堆棧前綴的情況下命名服務?
此行為是技術先決條件,因此無法更改。 您可以更改堆棧名稱和服務名稱,但不能更改兩者的組成。 該名稱必須是單獨的,否則您可能在不同的網絡中具有相同名稱的不同服務,因此 ID 和別名相同。
您可以通過使用docker service create --name
創建一個 bash 腳本來構建自己的“撰寫”以實現該目標,然后由您自己負責。
由於無法解決這個問題,也許最好只給應用程序一個通用的服務名稱,比如app:
。
services:
app:
ports:
- "8090:8080"
...
這樣, docker stack deploy my-service
將導致my-service_app
。 哪個讀起來更好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.