Я хочу, чтобы два контейнера Docker могли взаимодействовать друг с другом на машине Windows, на которой запущен Docker Toolbox. Я могу связать контейнеры с помощью опции --link
; однако, если я попытаюсь запустить контейнеры в созданной мной настраиваемой сети моста, контейнеры не смогут взаимодействовать друг с другом:
Вот шаги, которые я выполнил:
docker network create web-application-mysql-network
docker run --detach --env MYSQL_ROOT_PASSWORD=somepassword--env MYSQL_USER=some-user --env MYSQL_PASSWORD=pass --env MYSQL_DATABASE=mydb --name mysql --publish 3306:3306 --network=web-application-mysql-network mysql:5.7
docker run -p 8080:8080 -d --network=web-application-mysql-network myrepo/mywebapp:0.0.1-SNAPSHOT
Образ в последней команде выше содержит образ веб-сервера Tomcat Docker в качестве базового образа и «WAR» (файл веб-архива), который будет размещен в Tomcat. Когда я проверяю журналы для контейнера, запущенного последней командой, я вижу следующие ошибки:
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
Я могу без проблем связать два контейнера, если вместо этого использовал параметр --link
запуска их в моей пользовательской сети моста.
Дополнительная информация: я использую localhost в своем коде веб-приложения для URL-адреса MySQL. Казалось, что это нормально работает при использовании --link
Какие параметры конфигурации / команды мне не хватает, чтобы это работало?