Docker php_network_getaddresses ошибка

У меня есть следующие запущенные Docker-контейнеры, которые были сгенерированы PHPDocker:

learn-php-mysql:
image: mysql:5.7
container_name: learn-php-mysql
volumes:
- "./.data/db:/var/lib/mysql"restart: always
environment:
MYSQL_ROOT_PASSWORD: learning
MYSQL_DATABASE: learning
MYSQL_USER: learning
MYSQL_PASSWORD: learning

learn-php-webserver:
image: phpdockerio/nginx:latest
container_name: learn-php-webserver
volumes:
- ./code:/code
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "8080:80"links:
- learn-php-php-fpm

learn-php-php-fpm:
build: .
dockerfile: php-fpm/Dockerfile
container_name: learn-php-php-fpm
volumes:
- ./code:/code
- ./php-fpm/php-ini-overrides.ini:/etc/php/7.1/fpm/conf.d/99-overrides.ini
links:
- learn-php-mysql:mysql

Все работает нормально, кроме случаев, когда вы пытаетесь подключиться к серверу MySQL через код PHP:

$mysqli = new mysqli("db", "learning", "learning", "learning");

/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}

Это выдаст следующую ошибку:

Ошибка подключения: php_network_getaddresses: ошибка getaddrinfo: Имя или
служба не известна

Почему это происходит?

.

.

Вы можете найти хранилище для этого Вот. И когда работает docker-compose up идти к HTTP: // локальный: 8080 / классы / serialize.php произвести ту же ошибку.

5

Решение

При создании соединения через PHP (или любой другой), используйте имя контейнера в качестве хоста, который в случае узнать-PHP-MySQL.

таким образом

$mysqli = new mysqli("learn-php-mysql", "learning", "learning", "learning");

Буду работать.

5

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector