Contenedores de docker colocados usando enjambre de docker

Tengo dos services (serviceA y serviceB). ServiceA es una aplicación java y serviceB es un caching. Me gustaría escalar siempre estos services juntos (una réplica de cada uno en un host particular) y configurarlos de forma que siempre se comuniquen con el componente en el mismo host (serviceA para comunicarse con serviceB desde el mismo host) sin usar enjambre docker. DNS.

Inicialmente, he creado dos services en docker y utilicé alias de networking, pero esto no garantiza la colocación y la comunicación entre los componentes en el mismo host.

version: '3.1' services: serviceA: ... deploy: replicas: 3 network: testnetwork: aliases: ["serviceA"] serviceB: ... deploy: replicas: 3 network: testnetwork: aliases: ["serviceB"] networks: testnetwork: driver: overlay