在Docker容器中运行多个网站,如何实现?

我正在运行两个docker集装箱,使用下面的dockercomposer php脚本:

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容器与不同的网站,如web_1,web_2等?

或者,另外,如何在运行docker-composer的同时传播自定义的nginx.conf,以便在那里configuration虚拟主机。

谢谢!

所以做这件事的方式( 就像我在评论中所说的那样 )是使用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主机”。 例如:

 *.example.com A 1.1.1.1 

你可以阅读更多关于这篇文章如何工作的文章:

基于Docker的迷你PaaS

这将扩展和工作的网站,你想在你的“Docker主机”上运行。

编辑:关于这个设置的好处是它很简单,它是自动的,它只需要你添加一个额外的环境variables到你想暴露给Web的容器只有一个初始设置要求( 通配符DNS条目 )。