我需要运行多个链接到一个MySQL容器Nginx反向代理的WordPress容器,以便轻松处理VIRTUAL_HOSTS .
这是我正在尝试做的事情(现在只有一个WP):
-
Wordpress(hub.docker.com/_/wordpress/)
-
Mysql(hub.docker.com/_/mysql/)
-
Nginx反向代理(github.com/jwilder/nginx-proxy)
我正在研究OSX,这是我在终端上运行的:
docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
docker run --name some-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:latest
docker run -e VIRTUAL_HOST=wordpress.mylocal.com --name wordpress --link some-mysql:mysql -p 8080:80 -d wordpress
我的Docker运行在192.168.99.100上,这让我遇到了503 nginx / 1.9.12错误 .
然后192.168.99.100:8080按预期将我带到WordPress .
但http://wordpress.mylocal.com它's not working; it' s没有重定向到192.168.99.100:8080而且我没有做错't understand what I' .
有什么建议?谢谢!
2 回答
首先,我建议您开始使用docker-compose,运行容器并找到错误将变得更加容易 .
至于你的情况,似乎你应该使用VIRTUAL_PORT直接到8080的容器 .
其次,您不能将两个容器(nginx-proxy wordpress)打包到主机上的同一端口 .
祝好运!
根据您的情况,我认为最适合您的解决方案是使用正在侦听docker套接字的nginx反向代理,并将请求传递给不同的虚拟主机 .
例如,假设您有3个WP .
对于它们中的每一个,您应该使用具有要使用的虚拟主机名的docker环境变量 .
在这样做之后,您应该有3个不同的WP,其端口暴露在81 82 83上 .
现在下载并启动这个nginx docker容器(反向代理)here它应该在docker socket上监听并检索端口80上的所有数据 . 当你启动WP容器和你提供的环境变量时,他将会能够检测哪个请求shouul到哪个WP实例...
这是一个如何运行WP docker镜像的示例
在这种情况下,虚拟主机将是来自http请求的虚拟主机