Docker crea nueva image e instancia

Estoy ejecutando el server de la máquina Docker donde ejecuto las instancias del acoplador. Me gustaría ejecutar varios serveres (instancias) desde el mismo file docker-compose en una carpeta diferente.

He configurado dos files Docker. Uno es mysql y el otro es para nodejs. Aquí está el ejemplo:

FROM node:alpine RUN npm install -g nodemon RUN npm install -g pm2 ADD package.json package.json RUN npm install EXPOSE 3000 

Ahora ejecuto los de docker-compongo de esta manera:

 version: '2' services: service: build: context: . dockerfile: Dockerfile-server container_name: server ports: - "2000:3000" restart: always working_dir: /home/app volumes: - ./:/home/app command: sh -c 'nodemon' db: build: context: . dockerfile: Dockerfile-mysql container_name: mysql restart: always volumes: - ../mysql:/var/lib/mysql ports: - "3306:3306" 

Cuando agrego nueva carpeta de entorno (carpeta con estos files y algunos elementos actualizados de nodejs) y trato de ejecutar docker-componte. Ya se detiene la ejecución de dockers con las mismas configuraciones y lo recrea.

¿Cómo puedo ejecutar varias instancias desde el mismo file docker-compose?

Como está: no puede porque tiene un solo puerto 3306 en su máquina host. Pero si deja que docker componga administre los enlaces, puede usar la docker-compose scale SERVICE=N donde SERVICE es su nombre de service, y N la cantidad de copys. Por ejemplo, con esta configuration:

 version: '2.1' services: client: image: explorer-client ports: - 80:80 - 443:443 depends_on: - server networks: - client-server - client-watcher server: image: explorer-server depends_on: - networkingis networks: - client-server - server networks: client-server: driver: bridge server: driver: bridge 

puede escalar el service del server haciendo docker-compose scale server=2 porque no está explícitamente vinculado al cliente por un puerto.