簡體   English   中英

如何在 docker-compose 中設置 container_name 以進行集群部署?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM