首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

运行spring应用程序的Jetty Docker容器无法连接到在docker容器外部运行的mysql

问题描述:

运行spring应用程序的Jetty Docker容器无法连接到在docker容器外部运行的mysql。

解答:

这个问题可能是由于网络配置或者容器间通信的问题导致的。下面是一些可能的解决方案:

  1. 确保Docker容器和外部MySQL服务器在同一个网络中。可以使用Docker的网络功能来创建一个自定义网络,并将容器和外部MySQL服务器连接到该网络中。例如,可以使用以下命令创建一个自定义网络:
代码语言:txt
复制

docker network create mynetwork

代码语言:txt
复制

然后,将Jetty容器和MySQL容器连接到该网络中:

代码语言:txt
复制

docker run --network=mynetwork jetty-container

docker run --network=mynetwork mysql-container

代码语言:txt
复制

这样,两个容器就可以通过容器名称进行通信,而无需使用IP地址。

  1. 检查MySQL服务器的防火墙设置。确保MySQL服务器允许来自Docker容器的连接请求。可以尝试禁用防火墙或者配置防火墙规则以允许容器访问MySQL服务器的端口。
  2. 检查MySQL服务器的配置文件。确保MySQL服务器允许来自远程主机的连接请求。可以编辑MySQL服务器的配置文件(通常是my.cnf或者my.ini),将bind-address设置为0.0.0.0,以允许来自任意主机的连接请求。
  3. 确保MySQL服务器的端口在Docker容器外可访问。可以尝试使用telnet命令或者其他网络工具来测试是否可以从Docker容器外部访问MySQL服务器的端口。
  4. 检查Jetty应用程序的配置文件。确保应用程序的数据库连接配置正确,并且指向了正确的MySQL服务器地址和端口。
  5. 如果以上方法都无法解决问题,可以尝试使用Docker的端口映射功能。在运行Jetty容器时,使用-p参数将容器的端口映射到宿主机的端口上。例如,可以使用以下命令将容器的8080端口映射到宿主机的8080端口上:
代码语言:txt
复制

docker run -p 8080:8080 jetty-container

代码语言:txt
复制

然后,在Jetty应用程序的配置文件中使用宿主机的IP地址和映射的端口来配置数据库连接。

以上是一些可能的解决方案,希望能帮助到你解决问题。如果还有其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Docker容器无法停止:无法强制终止运行中的容器

Docker容器无法停止:无法强制终止运行中的容器 博主 默语带您 Go to New World....⌨ Docker容器无法停止:无法强制终止运行中的容器 摘要 作为一位充满热情的技术博主,我深入研究了Docker容器停止问题,尤其是在面临无法强制终止运行中的容器时的困扰。...引言 Docker容器是轻量级的虚拟化单元,它们可以方便地创建、运行和停止。但是,在某些情况下,容器可能会变得难以停止,无法响应正常的停止命令。这种情况可能导致资源泄漏和运维问题。...在深入研究容器停止问题之前,让我们首先了解为什么Docker容器有时难以停止。 1. 容器进程 Docker容器内运行的应用程序可能是一个持续运行的进程,难以立即终止。 2....,使用 docker kill 命令强制终止容器 docker kill container_name 总结 通过本文,我们深入研究了Docker容器停止问题,特别是在无法强制终止运行中的容器时的情况

36610

docker停止运行中的容器(docker关闭容器)

问题描述: centos 启动一个容器添加了-d 参数,但是docker ps 或者docker ps -a查看却已经退出了 shell>docker run -d centos a44b2b88559b68a2221c9574490a0e708bff49d88ca21f9e59d3eb245c7c0547...shell>docker ps 退出原因 1、docker容器运行必须有一个前台进程, 如果没有前台进程执行,容器认为空闲,就会自行退出 2、容器运行的命令如果不是那些一直挂起的命令( 运行top...,tail、循环等),就是会自动退出 3、这个是 docker 的机制问题 解决方案 方案1: 网上有很多介绍,就是起一个死循环进程,让他不停的循环下去,前台永远有进程执行,那么容器就不会退出了,以...,还占用一个终端 方案2: shell>docker run -dit centos /bin/bash 添加-it 参数交互运行 添加-d 参数后台运行 这样就能启动一个一直停留在后台运行的Centos...shell>docker ps 容器运行起来了 进入容器的方法: 使用exec,不要使用attach命令 attach命令就是使用现有终端,如果你要退出容器操作,那么bash结束,容器也就退出了

8.7K20
  • Docker - 如何SSH连接到正在运行的容器

    以下是本文稍后介绍的要点: 说明安装SSH 在现有容器上启用SSH的技巧 SSH到运行容器的技巧 说明安装SSH 如果你已经有一个正在运行的容器,并且你想通过SSH进行SSH连接并允许其他的Docker...另外,上面的工作在CentOS容器上也很好。 在现有容器上启用SSH的技巧 完成上述操作后,就可以运行SSH守护程序了。...以下是你如何开放22端口: 从容器中退出 使用以下命令提交Docker容器镜像:docker commit 使用以下命令运行一个新的容器...> / bin / bash SSH到运行容器的技巧 在使用上述步骤在现有容器和开放端口22上安装SSH之后,请执行以下操作以从另一个容器测试SSH: 按照以上步骤安装SSH,配置并开放端口22 如果要连接而不需要输入密码...容器的用户名> @其他Docker容器的IP>:/ tmp 以上执行将文件发送到其他Docker容器的/ tmp文件夹 我希望你发现这篇文章对于使用SSH将一个Docker容器连接到其他Docker容器很有帮助

    2.6K60

    Docker 容器命令:解析容器化应用程序的运行时

    这意味着用户可以在容器中执行命令,查看和修改容器中的文件和目录,以及与容器中的应用程序交互。...在Docker命令中,可以使用“-i”选项将标准输入(stdin)连接到容器中,并使用“-t”选项分配一个伪终端(TTY)。这两个选项结合在一起可以创建一个交互式的容器会话。...镜像是在docker中的,应用是在一个镜像中的,如何在容器中运行一个程序,如果直接使用docker访问是不行的,因为此时的应用只是在某个镜像下启动了,相当于在docker内部,而不是docker本身,此时就需要将镜像中的应用程序的启动端口映射给...是可选的,可以指定容器启动时要运行的命令和参数。 4.2.2 容器运行命令 docker run : 启动Docker容器中一个镜像中的应用程序。...使用 docker commit 会保留以前镜像的元数据以及标签,也可以在commit的时候自己指定。 重点:docker名字的规范 镜像名称只能包含小写字母、数字、连字符(-)和下划线(_)。

    34730

    运行docker容器遇到的坑

    今天工作中,需要在本机启动consul、zipkin两个容器,参考docker和zipkin两个镜像的说明,很自然地敲出了以下命令: docker run -d -p 8500:8500 --name=...consul在docker容器里运行的正确姿势: docker run -d -p 8500:8500 --name=dev-consul -e CONSUL_BIND_INTERFACE=eth0 consul...agent -dev -ui -client 0.0.0.0 关键是要加一个-client参数,这个在官方文档上有说明的: -client - The address to which Consul...因为容器运行时是使用-p参数把容器命名空间里的端口映射出来的,因此在容器里运行的程序监听地址必须绑定到0.0.0.0,如果只绑定到127.0.0.1,这样的端口没法映射出来。...zipkin在docker容器里运行的正确姿势: docker run -d -p 9411:9411 openzipkin/zipkin:2.12.3 关键是要指定镜像的版本为2.12.3,最新的版本

    1.5K20

    Docker - 如何使用SSH连接到正在运行中的容器

    以下是本篇文章中的几个重要步骤: 如何安装SSH 在现有容器上运行SSH的方法 使用SSH连接到其他运行中容器的方法 如何安装SSH 如果你已经有一个正在运行的docker容器,并且你想通过SSH...另外,上面介绍的方法在CentOS上运行的也很好。 在现有容器上启用SSH的方法 完成上述操作后,就可以运行SSH了。.../run.sh 建议使用nohup命令来运行,使其在sshd后台运行。 完成了上述步骤,这时我们应该打开docker容器的22端口。...> / bin / bash 使用SSH连接到其他运行中容器的方法 按照上述步骤在现有容器上安装了SSH并打开了22端口之后,请执行以下操作以从另一个容器测试SSH连接: 按照以上步骤安装SSH...文件夹 我希望这篇文章能够帮助到那些想要使用SSH将一个Docker容器连接到其他Docker容器的读者。

    5.4K70

    在Docker守护进程停机期间保持容器运行(即重启Docker时,正在运行的容器不会停止)

    前言: 在默认情况下,当 Docker 守护进程终止时,它将关闭正在运行的容器。不过,我们可以配置该守护进程,以便在该守护进程不可用时容器仍在运行。这种功能称为实时恢复。...实时还原选项有助于减少由于守护进程崩溃、计划中断或升级而导致的容器停机时间。...在 Linux 上,默认的配置文件为/etc/docker/daemon.json vim /etc/docker/daemon.json { "live-restore": true } 2.Docker...months ago Up 29 minutes 0.0.0.0:1521->1521/tcp, :::1521->1521/tcp oracle_11g #可以看到上面两个容器的运行时间分别为...Docker后,上面在运行的两个容器的运行时间分别为1小时、32分钟,容器并没有在我们重启Docker时停止,而是一直保持运行状态 。

    4.1K20

    开源容器引擎分析;替代docker的容器选择;容器运行时架构

    前段时间,听说了k8s对docker支持出现了变动。...今天整理服务器进程的时候,出现了与 containerd、lxcfs 相关的 daemon 进行,顿时再次对容器运行时产生了好奇,今天整理一下,进行简单记录: 容器运行时: CoreOS RTK(项目已经停止...) Mesos 容器 LXC OpenVZ Docker containerd(可脱离docker 单独使用) runc cri-o 容器相关: Open Container Initiative(OCI...) Docker and OCI Runtimes containerd简述 容器运行时做的工作: 容器镜像管理(Container image management) 容器生命周期管理(Container...lifecycle management) 容器创建(Container creation) 容器资源管理(Container resource management) Docker 架构随版本的演变

    1.1K10

    Docker - 如何SSH到正在运行的容器

    以下是本文稍后介绍的要点: 说明安装SSH 在现有容器上启用SSH的技巧 SSH到运行容器的技巧 说明安装SSH 如果你已经有一个正在运行的容器,并且你想通过SSH进行SSH连接并允许其他的Docker...另外,上面的这些工作在CentOS容器上也很好。 在现有容器上启用SSH的技巧 完成上述操作后,就可以运行SSH守护程序了。...以下是你如何公开22端口: 从容器中退出 使用以下命令提交docker容器镜像:docker commit 使用以下命令运行一个新的容器...> /bin/bash SSH到运行容器的技巧 在使用上述步骤在现有容器和公开端口22上安装SSH之后,请执行以下操作以从另一个容器测试SSH: 按照以上步骤安装SSH,配置并开放端口22 如果要连接而不需要输入密码...容器的用户名>@其他Docker容器的IP>:/tmp 以上执行将文件发送到其他Docker容器中的/tmp文件夹 我希望你发现这篇文章对于使用SSH将一个Docker容器连接到其他Docker容器很有帮助

    3.4K100

    docker运行容器外命令及系统监控的思路

    技术在不断的进步,容器化部署也已经成为了众多公司选择服务部署的首选。可移植,可以独立管理,部署方便等等优点都是选择容器化部署的理由。...但是如果部署在容器里面,容器是独立的环境,jar包与直接调用就都不可行了。 本文将给大家提供一种思路,docker部署的java应用如何进行宿主机各种环境与系统监控,如有不对之处,欢迎指出。...二.解决方案 java想要调用宿主机上的命令,单独直接使用一连串的shell脚本进行交互式的大量操作是不可能的。只能是单独命令一个个执行,那么如何跨容器执行命令呢?...docker容器中生成私钥与公钥,然后将公钥保存在宿主机的 ~/.ssh/authorized_keys 这样宿主机就可以通过ssh在宿主机上执行命令了。...下面以部署在docker容器上的java应用获取磁盘使用情况为例【前提是在docker上已经配置好了ssh免密】 /** * 系统基础信息 * * @author baiyan */ @ApiModel

    1.3K10

    复制文件到正在运行的Docker容器中

    但是,由于容器中的应用程序运行,它们将创建数据和日志文件从而导致两个容器不相同,同时他们处理的用户请求也是不同的。...我们可以用Docker提供的工具,修改一个容器,然后用这个已经被修改后的容器创建一个新的镜像。当然反过来也是如此。在接下里的内容中,我们将练习这些操作,然后使用这些命令更改容器创建一个新的镜像。...修改一个容器 为了便于演示效果,我们会通过运行两个容器来做对比,分别是映射到端口3000和4000,在我们的控制台窗口中输入以下命令。...docker start exampleApp3000 exampleApp4000 运行我们之前创建的两个容器,这些容器都是由同一个镜像创建而成,通过打开浏览器选项卡请求http://localhost...如果你想更改应用程序中的文件, 应该通过环境变量的形式来处理,这个在我们后面的内容中带着大家了解。

    4.2K10

    上传本地项目到Docker运行的GitLab容器中

    1、在GitLab上配置了客户端的ssh-key还是需要输入密码 GitLab默认是以http方式进行上传的,但是文件过大,Nginx与GitLab的默认配置限制了客户端像服务器传送文件的大小,,当前环境当中...GitLab是以Docker来跑的一个容器,端口映射发现失败,所以直接修改。...docker restart gitlab                                          #重新启动该容器 3、回到Windows上,解压要上传的文件 在解压后的文件夹右击选中...按照以下步骤找到gitlab上配置ssh-key的地方 然后在命令行中依次执行如下命令             1 cd test            #进入到要上传的项目的文件夹中            ...push –u origin master #将当前目录下的分支推送到主分支 5、为了保持安全性,再次登录到运行的容器gitlab上将那一行删掉,并且重启容器             1 docker

    1.4K10

    如何优化在docker容器内的MySQL性能

    前言: 在现代数据库应用中,性能和可靠性是至关重要的。对于运行在 docker中的 MySQL 容器,通过优化配置可以充分利用宿主机的的性能,从而提升数据库的整体性能和响应速度。...下面将介绍如何通过编辑 MySQL 容器中的配置文件来优化其性能,并详细说明操作步骤。 正文: 随着云计算和容器化技术的普及,越来越多的应用选择在容器中运行数据库服务。...MySQL 是广受欢迎的开源数据库之一,而在容器环境中运行 MySQL 时,优化配置尤为重要,以充分发挥容器和底层硬件的潜力。...在本文中,将探讨如何优化运行在 docker中的 MySQL 容器的配置,以提高其性能和稳定性。用 Docker 作为容器运行时环境,这里我认为你已经具有一定的 Docker 使用经验。...最后: 在本文中,介绍了如何通过编辑 MySQL 容器的配置文件来优化其性能,并提供了详细的操作步骤。

    1.4K21

    如何在Ubuntu 14.04上的Docker容器中运行Nginx

    实际上,这意味着我们可以将应用程序(或应用程序组)包装在一个容器(或容器)中,以使它们具有模块化,可移植性,可组合性和轻量级。...现在我们在一个分离的容器中有一个正在运行的Nginx实例! 但是,它还不够用,因为我们无法编辑配置文件,并且容器无法访问我们的任何网站文件。...第6步 - 将容器链接到本地文件系统 在本节中,我们将把它们放在一起。我们将启动我们的Nginx容器,以便可以通过端口80访问Internet,我们将它连接到服务器上的网站内容。...关于卷的背景信息; 也就是说,链接到容器中的永久服务器内容: Docker允许我们将目录从虚拟机的本地文件系统链接到容器。 在我们的例子中,由于我们想要服务器网页,我们需要为容器提供要呈现的文件。...想要了解更多关于在Docker容器中运行Nginx的相关教程,请前往腾讯云+社区学习更多知识。

    2.8K00

    将正在运行的容器保存为本地 Docker 镜像

    9-1 上一章我们是通过复制宿主机器的文件到容器中,更改了容器,那么除了复制文件进容器以外,还有另一种方法,便是直接与容器进行交互,在容器内执行命令。这种技术也建议少用,道理同上一章一样。...注意:要执行docker exec命令必须保证容器是运行状态,如果容器没有启动,请执行docker start。...然后我们在容器中执行以下命令: apt-get update apt-get install vim 请注意:这一步你可能因为网络的问题,导致你无法正常的安装 VIM 工具,你可以跳过这一步,不会影响到你后面内容的学习...如果你运行 docker image ls 命令,你会看到新的镜像已经被添加到列表中。 ? 9-1 此镜像就是被修改后的 RazorPage 应用程序容器生成的,当然你也可以用于其他任何容器。...接下来我们就将此容器发布到 Docker 的官方仓库,hub.docker.com[5] 中。 你可能需要的命令 以下是你在练习过程中涉及的命令。

    4.8K00

    Docker 容器已经运行的情况下,如何对外暴露端口

    一旦 Docker 容器已经运行起来后,原则上是不能直接修改容器配置来新增端口的。...Docker 容器的端口映射是在启动容器时通过 -p 或者 --publish 参数来设置的,一旦设置好并且容器运行起来后,这些设置就固定下来了。...使用 Docker 的网络功能,如创建一个新的网络桥接或者使用 docker network connect 将容器连接到另一个网络接口,这样可以在不重启容器的情况下改变网络设置。...这里分享下方法 2 的具体做法:如何在宿主机上使用 iptables 设置端口转发规则可以将外部请求转发到 Docker 容器的端口上。...上述方法并不是直接通过修改现有运行容器来实现的,而是通过一些外部操作或容器重建来实现端口暴露的目的。如果你希望对外暴露端口,建议在设计 Docker 容器时提前规划好端口映射。

    2.9K10
    领券