Я в недоумении не только по поводу того, почему это не работает, но и по дальнейшему устранению неполадок. Я новичок в docker, поэтому может быть что-то очевидное, но я не могу его найти. Я просмотрел здесь некоторые другие ссылки, которые можно было бы считать «дублирующими вопросами», и ничего не помогло.
Настройка моей игровой площадки:
mysql контейнер с именем : "db "
контейнер phpmyadmin с именем : phpmyadmin
контейнер wordpress с именем : домен-блог
Все контейнеры находятся в сети моста docker0
На этом этапе я запускаю все контейнеры индивидуально, но я проверяю, что база данных запущена и работает до запуска wordpress.
Строка для запуска контейнера wordpress:
docker run --name="domain-blog" -d \
-e WORDPRESS_DB_HOST=db:3306 \
-e WORDPRESS_DB_USER=domain_user \
-e WORDPRESS_DB_PASSWORD=testedpassword \
-e WORDPRESS_DB_NAME=domain_blog \
-e WORDPRESS_TABLE_PREFIX=astring \
--network=docker0 \
-p 8081:80 \
--restart always \
wordpress
То, что я пробовал:
- Я могу войти как
root
с rootpassword
из phpmyadmin, перемещаясь по hostip:8080
. - Я могу войти как
domain_user
, используя testedpassword
от phpmyadmin. - Подтверждено, что я могу добавить новую таблицу при входе в систему как domain_user.
- Я развернул контейнер Ubuntu и установил сетевые инструменты , может пинговать все контейнеры.
- Я установил
iputils-ping
прямо на WordPress контейнер и может пинговать db
, используя ping db
. Пинг работает, но также подтвердил, что БД разрешается по правильному IP-адресу. cat wp-config.php
показывает, что пользователь, хост (db: 3306), пароль и база данных передаются как I ' ожидаю.
Я использовал phpmyadmin, когда создал нового пользователя / пароль, базу данных и добавил разрешения для пользователя в этой базе данных. Пользователь настроен для входа в систему с %
.
Ошибка, из-за которой я не могу получить доступ к базе данных, возникает при попытке перейти к блогу с помощью hostip:8081
Точная ошибка: Error establishing a database connection