Как получить доступ к базе данных MySQL на том же хосте из контейнера Docker? - PullRequest
0 голосов
/ 22 ноября 2018

Это не тот же вопрос, что и: как я могу получить доступ к базе данных mysql, работающей в контейнере Docker?У меня есть приложение весенней загрузки, запущенное в tomcat в контейнере, созданное из официального образа tomcat.

Dockerfile

FROM tomcat:latest
RUN rm -f -R $CATALINA_HOME/webapps/ROOT
COPY build/libs/web-1.0-SNAPSHOT.war $CATALINA_HOME/webapps/web.war
COPY context.xml $CATALINA_HOME/conf/context.xml

Когда я хочу запустить Docker-контейнер, я говорю:

docker build .
#it prints out the newly generated container image id such as 08fc6cbf7759
docker run -p 8888:8080 08fc6cbf7759

Затем я получаю кучу трассировок стека, связанных с тем, что БД не получает никаких пакетов:

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1699)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:573)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:304)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:224)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1012)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:981)

Если я перетащу файл WAR в мой локально работающий tomcat вместо запуска докераобраз, он разворачивается нормально, никаких проблем с подключением к БД.Так что я знаю, что должно быть что-то для докера, которое ограничивает его способность контактировать с чем-либо снаружи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...