如何在docker-compose 中更改Docker 堆栈生成的服务名称
How to change the service name generated by Docker stack in docker-compose
部署此撰写文件的堆栈时使用:
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
生成的服务名称将是myapp_service-name
我希望它被 my-custom-service-name
命名和引用
对于服务之间的通信,如果通信的两个服务在同一网络中,您可以使用组合文件中定义的服务名称(在您的情况下,您的服务名称是服务名称)。
当您执行 docker service ls
时,堆栈名称将显示在每个服务之前。这样做是因为可能有两个不在共享网络中的同名服务。您无法更改它,这样做也没有意义,因为该名称并不重要,实际上只是一个 ID。但是,您可以更改堆栈的名称以获得 ${StackNameILike}:${ServiceNameILike}
我认为它还不受支持。
docker service
支持这个
#!/bin/bash
SERVICE_NAME=myservice
docker service create \
--name $SERVICE_NAME \
--hostname $SERVICE_NAME \
--network myoverlayattachableswarmscopednetwork \
# IMAGE GOES HERE
我能够登录到一项服务并通过我提供的名称在同一网络上 ping 另一项服务。
例如
docker exec -it $(docker ps -q -f name=myotherservice) bash
ping myservice
请注意,使用 docker stack up|deploy
时,docker-compose.yml
文件不支持 container_name
我认为你可以使用“container_name”来指定你的yml文件中的容器名称。有些喜欢:
service-name:
image: service-image
container_name: my-custom-service-name
如果您需要通过服务注册表从其他服务引用它,您可以使用以下定义。
service-name:
image: ....
network:
my-network:
aliases:
- ref-name
部署此撰写文件的堆栈时使用:
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
生成的服务名称将是myapp_service-name
我希望它被 my-custom-service-name
命名和引用对于服务之间的通信,如果通信的两个服务在同一网络中,您可以使用组合文件中定义的服务名称(在您的情况下,您的服务名称是服务名称)。
当您执行 docker service ls
时,堆栈名称将显示在每个服务之前。这样做是因为可能有两个不在共享网络中的同名服务。您无法更改它,这样做也没有意义,因为该名称并不重要,实际上只是一个 ID。但是,您可以更改堆栈的名称以获得 ${StackNameILike}:${ServiceNameILike}
我认为它还不受支持。
docker service
支持这个
#!/bin/bash
SERVICE_NAME=myservice
docker service create \
--name $SERVICE_NAME \
--hostname $SERVICE_NAME \
--network myoverlayattachableswarmscopednetwork \
# IMAGE GOES HERE
我能够登录到一项服务并通过我提供的名称在同一网络上 ping 另一项服务。
例如
docker exec -it $(docker ps -q -f name=myotherservice) bash
ping myservice
请注意,使用 docker stack up|deploy
docker-compose.yml
文件不支持 container_name
我认为你可以使用“container_name”来指定你的yml文件中的容器名称。有些喜欢:
service-name:
image: service-image
container_name: my-custom-service-name
如果您需要通过服务注册表从其他服务引用它,您可以使用以下定义。
service-name:
image: ....
network:
my-network:
aliases:
- ref-name