How to change the service name generated by Docker stack in docker-compose
I do not think it is supported (yet).
docker service
does support this
#!/bin/bash
SERVICE_NAME=myservice
docker service create \
--name $SERVICE_NAME \
--hostname $SERVICE_NAME \
--network myoverlayattachableswarmscopednetwork \
# IMAGE GOES HERE
I was able to log into a service and ping another one on the same network by the name I provided.
For example
docker exec -it $(docker ps -q -f name=myotherservice) bash
ping myservice
note that container_name
is not supported in the docker-compose.yml
file when using docker stack up|deploy
I think you can use "container_name" to specify the name of container in your yml file. Some like:
service-name:
image: service-image
container_name: my-custom-service-name
For communication between services you can use the serviceName as defined in the compose file (in your case your service name is service-name) if both services communicating are in the same network.
When you do docker service ls
the stackname will be shown before every service. That's done because its possible to have two services with the same name which are not in a shared network. You can't change that and it wouldn't make sense to do that because that name is not important and is actually just an ID. You can however change the name of your stack to get ${StackNameILike}:${ServiceNameILike}