如何将Docker PHP容器连接到MySql容器?

如何将Docker PHP容器连接到MySql容器?,php,mysql,docker,windows-10,dockerfile,Php,Mysql,Docker,Windows 10,Dockerfile,我已经用MySQL创建了一个docker容器: docker run --name mysqlfordocker -p3307:3306 -e MYSQL_ROOT_PASSWORD=password_db-d mysql //CONNECTION BY PHP APPLICATION NOT IN CONTAINER $servername = "127.0.0.1:3307"; $username_db = "username_db"; $password_db = "password_d

我已经用MySQL创建了一个docker容器:

docker run --name mysqlfordocker -p3307:3306 -e MYSQL_ROOT_PASSWORD=password_db-d mysql
//CONNECTION BY PHP APPLICATION NOT IN CONTAINER
$servername = "127.0.0.1:3307";
$username_db = "username_db";
$password_db = "password_db";
$db = "db";
它按预期工作

它由
MySQLWorckbech
PHP
应用程序使用,这些应用程序不在
MySQL
容器中:

docker run --name mysqlfordocker -p3307:3306 -e MYSQL_ROOT_PASSWORD=password_db-d mysql
//CONNECTION BY PHP APPLICATION NOT IN CONTAINER
$servername = "127.0.0.1:3307";
$username_db = "username_db";
$password_db = "password_db";
$db = "db";
我的
PHP
应用程序的
Dockerfile
是:

FROM php:7.0-apache

RUN apt-get update \
  && apt-get install -y --no-install-recommends libpq-dev \
  && docker-php-ext-install mysqli pdo_pgsql pdo_mysql

COPY / /var/www/html
EXPOSE 80
然后,我用我的
PHP应用程序创建了一个容器

docker run –d –p 5000:80 myphpapplication
PHP应用程序
正在运行,但它与
MySQL
容器的数据库连接存在问题

我尝试以不同的方式配置连接
servername
,但没有成功:

$servername = "127.0.0.1:3307";
$servername = "locahosto:3307";
$servername = "10.0.75.1:3307";  //DockerNAT
$servername = "172.17.0.2:3307"; //Ip by docker inspect mysql
你能帮我一下吗

附言。

这有两个部分,一个是获取容器的正确IP地址。实际IP地址可以使用-172.17.0.2,但也可以使用172.17.0.1

另外,您通常将端口号作为单独的参数

$servername = "172.17.0.1";
$username_db = "username_db";
$password_db = "password_db";
$db = "db";
$port= = 3307;   

$db = mysqli_connect($servername, $username_db, $password_db, $db, $port);

@Prateheshm我现在附上docker ps SCREESHOT您可以显示实际的connect PHP语句吗(根据连接方法,您有时会将端口指定为单独的参数)?至于IP地址-您应该能够使用'172.17.0.1'(或.2)@NigelRen您建议将端口参数分开吗?Mysqli连接通常将端口作为第5个参数()。@NigelRen添加您的建议作为示例回答