如何从docker容器中访问同一主机上的mysql数据库?

l3zydbqr  于 2021-06-18  发布在  Mysql
关注(0)|答案(0)|浏览(204)

这与以下问题不同:如何访问运行在docker容器中的mysql数据库?我有一个SpringBoot应用程序运行在一个容器中的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中,而不是运行docker映像,它部署得很好,没有db连接问题。所以我知道docker肯定有什么东西限制了它接触外界任何东西的能力。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题