php artisan迁移错误:提供了nodename或servname或不知道

php artisan迁移错误:提供了nodename或servname或不知道,php,mysql,laravel,docker-compose,laradock,Php,Mysql,Laravel,Docker Compose,Laradock,我的laradock项目遇到了麻烦:我已经下载并安装了docker,我已经成功地用laradock完成了laravel项目的设置。我使用PHP7、laravel(5.5.14)和laradock的最新版本。我开始在shell中编写项目: docker-compose up -d nginx mysql 所有服务都会启动。我的环境文件是: DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=3306 DB_DATABASE=homestead DB_USERNAM

我的laradock项目遇到了麻烦:我已经下载并安装了docker,我已经成功地用laradock完成了laravel项目的设置。我使用PHP7、laravel(5.5.14)和laradock的最新版本。我开始在shell中编写项目:

docker-compose up -d nginx mysql
所有服务都会启动。我的环境文件是:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=root
DB_PASSWORD=root
但是当我尝试将迁移用于

php artisan migrate
我收到这个错误:

SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known (SQL: select * from information_schema.tables where table_schema = homestead and table_name = migrations) 
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known 
PDO::__construct(): php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known 
我的数据库名为homestead,它被创建并运行。在我的laravel项目中,在迁移文件夹下,我有3个文件php:create_user_table、create_password_reset_table和create_customer_table(我写了这个文件)。我需要在数据库中创建一个名为customer的表,其中包含一些列:

Schema::create('customers', function (Blueprint $table) {
        $table->increments('id');
        $table->string('first_name');
        $table->string('last_name');
        $table->boolean('azienda');
        $table->string('iva');
        $table->string('ds');
        $table->boolean('fatres');
        $table->string('cf');
        $table->string('mail');
        $table->string('telefono');
        $table->integer('sponsor');
        $table->string('indinst');
        $table->string('civinst');
        $table->string('cityInst');
        $table->string('capinst');
        $table->string('provinst');
        $table->string('indf');
        $table->string('civf');
        $table->string('capf');
        $table->string('provf');
        $table->string('cityFatt');
        $table->timestamps();
    });

如何完成迁移并创建表?谢谢你的回答

@Stefano Zaniboni在评论中回答了这一问题,但要进一步说明:

我遇到了这个问题,因为我习惯于在本地目录中运行
php-artisan
命令,而不是在virtualbox/vagrant-box/docker容器中运行

提到您需要从虚拟机中运行
php artisan migrate
命令


如果您使用的是docker,则可以使用
docker ps
获取容器id。然后使用
docker exec-it/bin/bash
将ssh连接到容器中。然后只需将
cd
放入项目目录并运行
php-artisan-migrate

在哪里运行此命令?(里面的码头工人,外面的码头工人)嗨!我在docker外部运行了该命令,但我已经解决了在docker内部执行bash的所有问题,并重复了该命令。成功了!我被这个咬了一口。在我的例子中,我试图运行一个迁移刷新,这就是工作原理:docker exec-it php artisan迁移:刷新