Ну, настройка проста, должно быть два контейнера: один для базы данных mysql, а другой для веб-приложения.
Что я делаю для запуска контейнеров, первый для базы данных и второй для приложения:
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=db -p 3306:3306 -d mysql
docker run -p 8081:8081 myrepo/myapp
Приложение пытается подключиться к базе данных, используя localhost: 3306, но, как я выяснил, проблема заключается в том, что у каждого контейнера есть свой собственный localhost.
Одним из найденных решений было добавить одну и ту же сеть для контейнеров, используя --net
и команды docker происходят следующим образом:
docker network create my-network
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=db -p 3306:3306 -d
--net my-network mysql
docker run --net my-network -p 8081:8081 myrepo/myapp
Хотя сетьПриложение по-прежнему не может подключиться к базе данных. Что я делаю неправильно и как правильно подключить приложение к базе данных, когда они оба находятся внутри контейнеров?