Он не подключается, потому что ваши основные настройки нуждаются в некоторых корректировках. Вашему MYSQL нужны его основные настройки для правильного запуска.Затем вам нужно установить сетевой режим для моста (это заставит ваши контейнеры соединяться с собой с помощью container_name).Вот что я делаю в этом файле docker-compose:
version: "3"
services:
db:
image: mysql:5.7
restart: always
container_name: db
environment:
- MYSQL_ROOT_PASSWORD=rootpasswd
- MYSQL_DATABASE=phpmyadmin
- MYSQL_USER=user
- MYSQL_PASSWORD=userpasswd
networks:
- db
command: --default-authentication-plugin=mysql_native_password
webserver:
image: php:apache
volumes:
- ./src:/var/www/html
ports:
- 24:80
phpmyadmin:
image: phpmyadmin/phpmyadmin:4.7
restart: always
container_name: phpmyadmin
ports:
- 9090:80
networks:
- external-net
- db
environment:
PMA_HOST: db
depends_on:
- db
networks:
external-net:
external:
name: external-net
db:
driver: bridge
Я создал две сети, одну для внешнего доступа и другую для доступа к базе данных, поэтому, если вашему веб-серверу необходимо связаться сих, вам просто нужно добавить его в файл compose.После развертывания вы можете получить доступ к phpmyadmin с правами root: rootpasswd