使用docker运行多个应用程序

我有一个运行docker的symfony应用程序,在https://github.com/maxpou/docker-symfony之后 ,一切正常。

但现在我开始另一个symfony项目,并克隆相同的docker-symfony存储库,但是我得到这个错误做docker-compose up -d

错误:对于nginx无法启动服务nginx:驱动程序无法编程端点上的外部连接symfony2restapidocker_nginx_1(d736a2c930368e1cd94f71e502bfe3ffb991cf8d63ae0b0d412c189c8e5b504f):绑定0.0.0.0:80失败:端口已分配

是不是有可能有两个应用程序在同一时间运行与泊坞窗?

谢谢

端口80已被分配给其他应用程序/服务。 尝试停止80端口运行的应用程序。 否则你可以改变你当前的应用程序端口为其他一些而不是80使用其他端口号7080等等

对的,这是可能的。

包含的错误是由端口80已经为第一个nginx容器保留的。 如果你想启动相同的容器,你需要在主机上给它一个新的端口。

docker-compose文件必须更新为第二次运行,如下所示:

 version: '2' services: db: image: mysql volumes: - "./.data/db:/var/lib/mysql" environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} php: build: context: php7-fpm args: TIMEZONE: ${TIMEZONE} volumes: - ${SYMFONY_APP_PATH}:/var/www/symfony - ./logs/symfony:/var/www/symfony/app/logs nginx: build: nginx ports: - 82:80 volumes_from: - php volumes: - ./logs/nginx/:/var/log/nginx elk: image: willdurand/elk ports: - 83:80 volumes: - ./elk/logstash:/etc/logstash - ./elk/logstash/patterns:/opt/logstash/patterns volumes_from: - php - nginx 

在这种情况下,端口82和82将分别保留给新的容器nginx和elk。