Docker组成新的图像和实例

我正在运行docker机器服务器,我运行docker实例。 我想从不同文件夹中的同一个docker-compose文件运行多个服务器(实例)。

我configuration了两个Dockerfile。 一个是mysql,另一个是nodejs。 这是一个例子:

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

现在我运行docker-compose这样的东西:

 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" 

当我添加新的环境文件夹(包含这些文件和一些更新的nodejs东西的文件夹),并尝试运行docker-compose。 停止已经运行相同的设置docker,并重新创build。

如何从同一个docker-compose文件运行多个实例?

原因是:你不能因为你的主机上只有一个3306端口。 但是如果你让dockerpipe理链接,你可以使用docker-compose scale SERVICE=N其中SERVICE是你的服务名,N是拷贝数。 举个例子,这个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: - redis networks: - client-server - server networks: client-server: driver: bridge server: driver: bridge 

您可以通过执行docker-compose scale server=2来扩展服务器服务,因为它没有通过端口明确链接到客户端。