如何在docker-compose中更改Docker堆栈生成的服务名称

Igo*_* L. 6 docker docker-compose docker-swarm docker-stack

在使用以下方式部署此撰写文件的堆栈时:

docker stack deploy -c docker-compose.yml myapp

service-name:
    image: service-image
    namelike-property: my-custom-service-name // here I would like to know the property
Run Code Online (Sandbox Code Playgroud)

生成的服务名称将为myapp_service-name

我希望它由my-custom-service-name命名和引用

小智 20

我认为您可以使用“ container_name ”在 yml 文件中指定容器的名称。有些喜欢:

service-name:
    image: service-image
    container_name: my-custom-service-name
Run Code Online (Sandbox Code Playgroud)

  • 正如文档中所述:https://docs.docker.com/compose/compose-file/#container_name “在集群模式下部署堆栈时,将忽略 container_name 选项” (5认同)

her*_*erm 3

对于服务之间的通信,如果通信的两个服务位于同一网络中,则可以使用撰写文件中定义的 serviceName (在您的情况下,您的服务名称是 service-name )。

当您执行此操作时docker service ls,堆栈名称将显示在每个服务之前。这样做是因为可能有两个同名的服务不在共享网络中。您无法更改它,这样做也没有意义,因为该名称并不重要,实际上只是一个 ID。但是,您可以更改堆栈名称以获得 ${StackNameILike}:${ServiceNameILike}