我使用以下docker-composer脚本运行两个docker容器:
db:
image: cofoundry/mysql
environment:
- MYSQL_USER=wordpress
- MYSQL_PASS=wordpress
- MYSQL_DB=wordpress
ports:
- "3306:3306"
privileged: true
web:
image: cofoundry/nginx-phpfpm
volumes:
- ../bedrock:/app
environment:
- DOCROOT=/app/web
links:
- db
ports:
- "80:80"
privileged: true
但我不确定如何在不同网站上运行多个nginx-phpfpm网页容器,例如web_1,web_2等?
或者,或者,如何在运行docker-composer时传播自定义nginx.conf,这样我就可以在那里配置虚拟主机。
谢谢!
答案 0 :(得分:0)
所以这样做的方式(,因为我在评论中的mentioend)是使用像autodock这样的东西:
示例:(基于您的docker-compose.yml
):
db:
image: cofoundry/mysql
environment:
- MYSQL_USER=wordpress
- MYSQL_PASS=wordpress
- MYSQL_DB=wordpress
ports:
- "3306:3306"
privileged: true
web:
image: cofoundry/nginx-phpfpm
volumes:
- ../bedrock:/app
environment:
- DOCROOT=/app/web
- VIRTUALHOST=myapp.example.com
links:
- db
privileged: true
autodock:
image: prologic/autodock
ports:
- "1338:1338/udp"
- "1338:1338/tcp"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
autodockhipache:
image: prologic/autodock-hipache
links:
- autodock
- hipache:redis
hipache:
image: hipache
ports:
- 80:80
- 443:443
唯一要求是您为*.example.com
设置通配符DNS条目以指向“Docker Host”。 e.g:
*.example.com A 1.1.1.1
您可以在文章中详细了解这一切是如何运作的:
这将扩展并适用于您希望在“Docker Host”上运行的多个网站。
编辑:这个设置的好处在于它很简单,它是自动化的,它只需要向你想要暴露给web的容器添加一个额外的环境变量,只有一个初始化设置要求(通配符dns条目)。