Laravel 5应用程序无法在Docker容器中连接MariaDB引擎

我在Docker容器中创build了一个新的Laravel 5应用程序。 我可以访问家庭url,并获得欢迎消息。 我尝试创build新的路线,他们也在工作。 然后我运行一个MariaDB docker容器来链接到Laravel 5应用程序。 这是问题出现的地方。 当我尝试使用以下命令在Laravel 5中运行迁移时:

php artisan migrate --force 

我收到以下错误消息:

 Can't connect to MySQL server on '127.0.0.1' 

我的.env文件是这样的:

  DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_DATABASE=blog DB_USERNAME=blog DB_PASSWORD=123456 

我知道Laravel使用这些variables来连接数据库,因为它们存在于Laravel日志文件中,如下所示:

 PDO->__construct('mysql:127….', 'blog', '123456', Array) 

数据库引擎是MariaDB,它在Docker容器中运行。 这个docker容器暴露端口3306并链接到运行Laravel的容器。 要链接容器,我使用下面的docker命令:

 docker run –i –t - - link mariadb:mysql miguelbgouveia/laravel:v3 /bin/bash 

我也知道,我的MariaDB泊坞窗容器正在运行正确的configuration,因为我使用一个phpmyadmindocker容器链接到它,我可以连接到成功的数据库。 我将MariaDB容器与phpmyadmin容器链接到链接到Laravel容器的相同方式(–link mariadb:mysql)

为什么我无法连接到数据库? 有任何configuration或PHP模块安装缺less?

毕竟很简单。 如果我在我的环境variables中使用mysql主机,只需要知道MariaDB docker容器的IP地址即可。 .env文件是这样的:

 DB_CONNECTION=mysql DB_HOST=mysql DB_DATABASE=blog DB_USERNAME=blog DB_PASSWORD=123456 

现在我可以连接MariaDB引擎成功。