将主机nginx和msql与一个php5-fpm的docker容器连接起来

我有一个与Nginx / MySQL和php5-fpm运行的传统Wordpress安装,我必须将其移动到最新的VPS,其function为php7-fpm。

我想利用已经安装Nginx / MySQL的新主机VPS,并安装和使用一个容器来pipe理php5请求。

我从Docker Hub中取出了官方的php5-fpm镜像

docker pull php:5.6-fpm-alpine 

…然后我运行映像重新映射的端口9000,其中php5-fpm正在侦听,并加载wordpress根文件夹(不确定)和mysql套接字,没有-d标志为了看到日志生活:

 docker run --name phpFpm5.6 -p 127.0.0.1:9999:9000 -v /home/ubuntu/www/html:/var/www/html -v /var/run/mysqld/mysqld.sock:/tmp/mysql.sock php:5.6-fpm-alpine 

这是控制台日志:

 [21-Aug-2017 12:36:19] NOTICE: fpm is running, pid 1 [21-Aug-2017 12:36:19] NOTICE: ready to handle connections 172.17.0.1 - 21/Aug/2017:12:37:09 +0000 "GET /index.php" 404 172.17.0.1 - 21/Aug/2017:12:39:30 +0000 "GET /index.php" 404 

当我从浏览器请求索引页时,我得到一个404(未find)响应。

Nginx指令:

 location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9999; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } 

任何线索真的很感激。

提前致谢。

最好的,卢卡

将容器看作是远程服务器。 现在,您正在执行的端口映射9999:9000告诉docker将主机上的端口号9999连接到容器的端口号9000

现在在你的nginx指令中,一个在容器内部运行的指令,你redirect到9999 。 相反,它应该是9000

根据您的情况,所有资源都由端口9999的容器提供服务,但容器的端口9999不能由主机访问。