如何在Docker上同时运行多个项目

时间:2018-12-21 03:11:29

标签: php docker nginx docker-compose dockerfile

我是Docker的新手,由于它们都在同一端口上运行,因此无法处理多个项目。

我的docker-compose.yml:

enter image description here

我的../ backend-web / Dockerfile:

FROM nginx

COPY nginx.conf /etc/nginx/conf.d/default.conf

我的nginx.conf: enter image description here

以及从中加载端口的.env文件:

DB_HOST=database-service
DB_ROOT_PASSWORD=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=

BACKEND_PORT=443
DB_PORT=3306
REDIS_PORT=6379
PHP_FPM_INSTALL_XDEBUG=true

现在,当我执行docker-compose时,所有这些都可以使用,我可以访问https://localhost,但是我想拥有多个项目,当我尝试对其他项目使用相同的docker compose文件时,它不起作用因为它使用相同的端口。我尝试将443更改为444,将mysql端口更改为3307,但随后它不加载https://localhost:444

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

我曾短暂地与docker合作,但请记住在某些情况下您必须重建容器。更改端口后尝试docker-compose up --build吗?

答案 1 :(得分:0)

与端口相比,我更喜欢为每个项目使用本地域。只要保持代理容器运行(例如traefik),我们就可以docker-compose up使用80端口默认值和  这样的本地域:project1.localhostproject2.localhost ...

您可以在此处找到更多参考: