Search code examples
dockerdocker-swarmdocker-swarm-mode

docker swarm service name


I'm new to swarm and trying to figure how can I set service name in order to access containers from different nodes.

I'm using docker-compose file:

version: '3.1'
services:
  service-ui:
    image: service-ui:release
    deploy:
      placement:
        constraints:
          - node.role == manager
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 5
    ports:
      - "443:443"

docker deploy -c docker-compose.yml stackname to bring the stack up.

My service name is being generated to the following format: stackname_servicename.1, while I access it by ServiceName. how do set an constant name for a service in swarm mode?


Solution

  • inside the same compose file all services are available with the serviceName to each other, because there is internal DNS.

    In you file you have service bigid-ui that is the the DNS record for all services of this type, so even when you scale your app once you will get bigid-ui.1 and other time bigid-ui.2 but both have dns record just bigid-ui.

    This name is available only to other services in same compose file. and if you do docker ps -a it will show you the stackanme_bigid-ui.1 which is correct.