我有许多项目基于码头-撰写文件与不同的设置。如果我想启动另一个项目,我将docker-compose stop当前项目和docker-compose up另一个。但是我的问题听起来是:如何开始两个或更多的对接者-与任何项目同时组合图像?我的操作系统linux ubuntu。我的码头编剧看上去是:
application:
build: code
volumes:
- ./mp:/var/www/mp
- ./logs/mp:/var/www/mp/app/logs
tty: true
db:
image: mysql
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: mp-DB
MYSQL_USER: root
MYSQL_PASSWORD: root
php:
build: php-fpm
ports:
- 9000:9000
volumes_from:
- application
links:
- db
nginx:
build: nginx
ports:
- 80:80
links:
- php
volumes_from:
- application
volumes:
- ./logs/nginx/:/var/log/nginx
elk:
image: willdurand/elk
ports:
- 81:80
volumes:
- ./elk/logstash:/etc/logstash
- ./elk/logstash/patterns:/opt/logstash/patterns
volumes_from:
- application
- php
- nginx如果我尝试运行另一个项目,就会出现错误。
‘驱动程序无法在端点mpdockerenv_db_1绑定上编程外部连接,为0.0.0.0:3306失败:端口已经分配’
我想我应该从不同港口的集装箱里转发港口,但我不知道该怎么做。
发布于 2016-10-31 09:38:13
是为您的问题准确构建句柄的工具。
我的意思是,想象一下,您有一个复杂的项目,您需要组织和有更干净的方法来处理系统环境。
通常,在一个docker-compose.yml文件中,您可以拥有您将要使用的任何对接者图像。
f.example是我使用的部分文件:
mongo:
image: mongo:latest
ports:
- "3002:27017"
environment:
MONGODB_DATABASE: "meteor-console-dev"
php-fpm-dev:
image: jokediaz/php-fpm.5.6-laravel
volumes:
- ./repos/datamigration:/usr/share/nginx/html/datamigration
- ./unixsock:/sock
- ./config/php-fpm-5.6/:/usr/local/etc/php
links:
- mongo因此,如果我们看一下以下规则:
另一点是,当修改了坞-组合以重新创建您所做的所有更改时,一个好主意是在(小心地,这将删除任何未映射的卷)之前使对接者-组合下来,以清除和释放空间。
查看docker-组合文件引用:
在你的情况下
ports:
- 3306:3306主机正在使用端口3306。(可能您的系统中有一个正在运行的mysql实例,因此正在使用端口)
因此,只需换到其他自由港:
ports:
- 3308:3306https://stackoverflow.com/questions/40338801
复制相似问题