Docker - 尝试连接到DB时出现php_network_getaddresses错误

时间:2017-11-13 15:29:28

标签: docker laravel-5 docker-compose dockerfile

使用docker设置新的Laravel安装,这是docker-compose.yml文件:

version: '2'

services:
web:
    image: nginx
    restart: always
    links:
        - "fpm"
    volumes:
        - ./build/volumes/nginx/conf.d:/etc/nginx/conf.d:ro
    volumes_from:
        - fpm
    ports:
        - 8080:80

mysql:
    image: mysql
    environment:
        MYSQL_ROOT_PASSWORD: "[OMMITTED]"
        MYSQL_DATABASE: "[OMMITTED]"
        MYSQL_USER: "[OMMITTED]"
        MYSQL_PASSWORD: "[OMMITTED]"

fpm:
    build:
        context: .
    volumes:
        - .:/var/www

docker-compose up -d工作正常,我可以在http://localhost:8080/看到Web服务器,但是当尝试与数据库建立任何类型的连接时,我收到PDO::__construct(): php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known错误消息。

我的.env文件包含以下内容(DB_HOST是容器名称):

DB_CONNECTION=mysql
DB_HOST=container_mysql_1
DB_PORT=3306
DB_DATABASE=[OMMITTED]
DB_USERNAME=[OMMITTED]
DB_PASSWORD=[OMMITTED]

尝试使用localhost作为DB_HOST,然后返回Access denied for user错误,我检查了详细信息是否正确。我假设码头工人的容器没有互相交谈?

1 个答案:

答案 0 :(得分:2)

你错过了码头链接:

fpm:
    build:
        context: .
    volumes:
        - .:/var/www
    links:
      - mysql:mysql