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

如何:运行java jar的Docker容器连接到主机mysql服务器?

要运行Java JAR的Docker容器连接到主机MySQL服务器,可以按照以下步骤进行操作:

  1. 创建Docker镜像:首先,在本地创建一个Dockerfile文件,内容如下:
代码语言:txt
复制
FROM openjdk:8-jdk-alpine

COPY your-app.jar /app.jar

CMD ["java", "-jar", "/app.jar"]

将上述代码保存为Dockerfile,并将your-app.jar替换为你的Java应用程序的JAR文件名。

  1. 构建Docker镜像:在终端中,进入Dockerfile所在的目录,并执行以下命令来构建Docker镜像:
代码语言:txt
复制
docker build -t your-image-name .

其中,your-image-name是你给镜像起的名称,可以自定义。

  1. 运行Docker容器:执行以下命令来运行Docker容器,并将主机的MySQL服务器连接到容器中:
代码语言:txt
复制
docker run -d -p 8080:8080 --name your-container-name --link your-mysql-container:mysql your-image-name

其中,your-container-name是你给容器起的名称,可以自定义;your-mysql-container是主机上运行的MySQL容器的名称;8080是你的Java应用程序所使用的端口号,可以根据实际情况进行修改。

  1. 在Java应用程序中连接MySQL服务器:在你的Java应用程序中,使用以下代码来连接MySQL服务器:
代码语言:txt
复制
String jdbcUrl = "jdbc:mysql://mysql:3306/your-database-name";
String username = "your-username";
String password = "your-password";

Connection connection = DriverManager.getConnection(jdbcUrl, username, password);

其中,mysql是你在步骤3中指定的--link参数的别名,3306是MySQL服务器的默认端口号,your-database-name是你要连接的数据库名称,your-username和your-password是连接MySQL服务器所需的用户名和密码。

这样,你的Java JAR的Docker容器就可以成功连接到主机上的MySQL服务器了。

注意:以上步骤中的your-app.jar、your-image-name、your-container-name、your-mysql-container、your-database-name、your-username和your-password等参数都需要根据实际情况进行替换和配置。

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

相关·内容

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

本文包含有关如何Docker容器使用SSH与其他Docker容器连接说明。如果我没有提到一个或多个重点,请随意评论/建议。...以下是本文稍后介绍要点: 说明安装SSH 在现有容器上启用SSH技巧 SSH到运行容器技巧 说明安装SSH 如果你已经有一个正在运行容器,并且你想通过SSH进行SSH连接并允许其他Docker...另外,上面的工作在CentOS容器上也很好。 在现有容器上启用SSH技巧 完成上述操作后,就可以运行SSH守护程序了。...以下是你如何开放22端口: 从容器中退出 使用以下命令提交Docker容器镜像:docker commit 使用以下命令运行一个新容器...容器用户名> @其他Docker容器IP>:/ tmp 以上执行将文件发送到其他Docker容器/ tmp文件夹 我希望你发现这篇文章对于使用SSH将一个Docker容器接到其他Docker容器很有帮助

2.5K60

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

本篇文章主要介绍了如何使用SSH将你Docker容器与其他Docker容器进行连接方法,如果我忽略了一个或多个重点,请随意评论/建议。...以下是本篇文章中几个重要步骤: 如何安装SSH 在现有容器运行SSH方法 使用SSH连接到其他运行容器方法 如何安装SSH 如果你已经有一个正在运行docker容器,并且你想通过SSH...下面教你如何打开22端口: 从容器中退出 使用以下命令提交docker容器镜像:docker commit 使用以下命令运行一个新容器...> / bin / bash 使用SSH连接到其他运行容器方法 按照上述步骤在现有容器上安装了SSH并打开了22端口之后,请执行以下操作以从另一个容器测试SSH连接: 按照以上步骤安装SSH...文件夹 我希望这篇文章能够帮助到那些想要使用SSH将一个Docker容器接到其他Docker容器读者。

5.3K70
  • docker-compose容器编排部署

    可以很容易地用一个配置文件定义一个多容器应用,然后使用一条指令安装这个应用所有依赖,完成构建。Docker-Compose 解决了容器容器之间如何管理编排问题。.../tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器/tmp VOLUME /tmp # 将jar包添加到容器中并更名为auth_docker.jar ADD service-system.jar...auth_docker.jar # 运行jar包 RUN bash -c 'touch /auth_docker.jar' ENTRYPOINT ["java","-jar","/auth_docker.jar...修改后配置文件如下所示。 3.4 将相关文件上传到服务器   后端项目打成jar包并和Dockerfile、docker-compose.yaml一同上传到服务器指定目录下。   ...项目打包:   将文件上传到服务器,上传之后如下所示: 3.5 执行docker-compose up   运行如下命令: docker-compose up -d   查看正在运行容器docker

    1.4K20

    写给Java开发看 Docker 干货(零基础部署Nginx MySQL SpringBoot)

    主机docker容器网络通讯方式有为3种: 桥接(Bridge): 也是最常用方式,该模式下会将ubuntu主机端口映射到docker容器端口上,例如8080:8081则会- 将主机8080...Bridge 桥接模式需要使用-p参数或者-P参数,-p 主机端口:容器端口,-P则使用随机主机端口映射到docker容器 -p 指定端口模式 # docker run -d -p 主机端口:容器端口...真好顺着这个错误,学习一下如何进入容器内部,也顺便看看容器内部是什么样子: 通过docker ps查询容器id 通过docker exec -it 容器ID(可以只输入前缀) bash进入容器,此时你会发现终端前方用户从...from java:8 # 创建者 MAINTAINER bugpool xxx@163.com # 将当前目录下jar复制到容器/目录下 COPY hello-springboot.jar /hello-springboot.jar...# 指定启动时运行java -jar 命令 ENTRYPOINT ["java", "-jar","/hello-springboot.jar"] 构建镜像 springboot项目肯定是需要需要jdk

    95920

    docker基础安装使用

    (2)职责逻辑分类 使⽤Docker,开发⼈员只需要关⼼容器中运⾏应⽤程序,⽽运维⼈员只需要关⼼如何管理容器。...你可以在同⼀台宿主机上运⾏Docker守护进程和客户端,也可以从本地Docker客户端连接到运⾏在另⼀台宿主机远程Docker守护进程。...Docker也不关⼼你要把容器运到何⽅:我们可以在⾃⼰笔记本中构建容器,上传到Registry,然后下载到⼀个物理或者虚拟服务器来测试,在把容器部署到具体主机中。...Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像 Docker应用运行容器中,使用沙箱机制,相互隔离 Docker如何解决开发、测试、生产环境有差异问题?...-jar /tmp/app.jar 创建Java项目并打包 import org.springframework.web.bind.annotation.RequestMapping; import

    71451

    Docker初识到使用

    此时,如果将一个Ubuntu版本MySQL应用安装到CentOS系统,MySQL在调用Ubuntu函数库时,会发现找不到或者不匹配,就会报错了。 Docker如何解决不同系统环境问题?...Docker应用运行容器中,使用沙箱机制,相互隔离。 Docker如何解决开发、测试、生产环境有差异问题?...语法: 目录挂载与数据卷挂载语法是类似的: -v [宿主机目录]:[容器内目录] -v [宿主机文件]:[容器内文件] 创建并运行一个MySQL容器,将宿主机目录直接挂载到容器 2.3.7.../app.jar /tmp/app.jar EXPOSE 8090 ENTRYPOINT java -jar /tmp/app.jar ④ 使用docker build命令构建镜像。...4.1、初识DockerCompose Compose文件是一个文本文件,通过指令定义集群中每个容器如何运行

    32910

    如何让你微服务保持稳定

    这项服务如何运行?什么是可部署文件?它有哪些依赖关系:数据库,消息代理,其他服务,AWS S3上存储?连接到这些系统凭证是什么?需要设置哪些环境变量?...在第二个优势是Docker容器加速能力,瞧,它所有依赖服务都准备就绪了。 我通常使用混合方法,直接在我笔记本电脑上运行服务,并在Docker容器运行所有依赖项(数据库,消息代理等)。...我一注意到这一点,就在一个Docker容器中设置了一个MySQL服务器,其配置与生产环境相同,这个bug就浮出水面了。bug重现使人心安,我很快就可以修复它。...这将允许诸如JConsole或Visual VM之类工具连接到Docker运行服务以及IDE以调试上述服务。...必须将属性java.rmi.server.hostname设置为我Docker虚拟机外部可访问IP地址(如果未明确设置,RMI服务器将公开Docker指定内部IP地址)。

    84720

    SpringBoot 多模块项目打包部署保姆级教程

    启动并挂载镜像 -d: 后台运行容器,也可以使用镜像id -p 将容器端口映射到本机端口 -v 将主机目录挂载到容器目录 -e 设置参数 MYSQL_ROOT_PASSWORD 指定登录密码...退出容器内部但不停止容器运行 Ctrl+P+Q 退出容器内部但不停止容器运行 exit 退出容器内部并停止容器运行 最后我们使用 navicat 远程连接测试 我们找到我们服务器或者虚拟机...ip地址来连接我们mysql, 如果使用mysql记得放行3306端口,关于如何放行这里不做赘述。...有的小伙伴会问了,谁知道到底有没有成功,mysql都有这个几个数据库啊! 那我们直接在连接到mysql中新加一个数据库看看docker容器mysql是否会出现这个表不就行了吗。...我们去web目录下target中找到jar文件 我把他拷贝出来换了个名字 我们可以在cmd中 使用 java -jar 命令来运行jar包 但是我们会发现服务是后台接口是无法请求

    1.9K10

    Docker工程化发展以及实践讲解

    Docker 是一种容器技术,可以让开发者在一个隔离环境中运行和部署应用程序,从而提高应用程序可移植性、安全性和效率。...它监视跨服务器群集容器数量,是在没有其他硬件情况下创建群集 docker 应用程序最便捷方式。 2023 年 Docker 发展至今 Kubernetes 已经成为了容器编排引擎事实标准。...这样我们 Java 服务就可以在容器运行,并能够通过宿主机 8080 端口访问了。...CI/CD 工具使用 SSH 或其他方式连接到目标服务器(如 Digital Ocean 或其他云服务商),并使用 Docker 命令或 docker-compose 命令来拉取镜像并运行容器。...在集群中部署并运行监控和日志服务器(如 Prometheus Server 或 Elasticsearch),用于存储和查询容器指标和日志。

    25320

    全栈式部署:SpringCloud 微服务+Docker + Vue + nginx 前后端一站式部署

    1.1 连接服务器 要对远程服务器进行操作,首先要连上服务器才行。打开命令行工具,输入以下命令,再输入服务器实例密码,即可远程连接到服务器。...1.2 安装 Docker Docker 容器化部署优点就不多说了,直接上干货如何安装 Docker。 下面直接把代码框里命令拷贝到命令行执行就可以。...-v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下 conf/my.cnf 挂载到容器 /etc/mysql/my.cnf。...-v $PWD/data:/var/lib/mysql :将主机当前目录下data目录挂载到容器 /var/lib/mysql 。...查看当前运行容器,看 mysql、redis、rabbitMQ 和你自己项目是否运行 docker ps 查看日志 想进入到容器中查看日志: docker logs 容器id 比如想查看容器id为

    2.1K30

    docker-compose容器编排

    可以很容易地用一个配置文件定义一个多容器应用,然后使用一条指令安装这个应用所有依赖,完成构建。Docker-Compose 解决了容器容器之间如何管理编排问题。...zzyy # VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器/tmp VOLUME /tmp # 将jar包添加到容器中并更名为zzyy_docker.jar...重新将项目打成jar包并上传到linux服务器/mydocker目录下。.../var/lib/docker目录下创建了一个临时文件并链接到容器/tmp VOLUME /tmp # 将jar包添加到容器中并更名为zzyy_docker.jar ADD docker_boot-0.0.1...-SNAPSHOT.jar zzyy_docker.jar # 运行jar包 RUN bash -c 'touch /zzyy_docker.jar' ENTRYPOINT ["java","-jar"

    1.7K20

    Docker从入门到掉坑(三):容器太多,操作好麻烦

    那么我们先从简单单个容器入手,看看该如何对SpringBoot做Docker Compose管理,下边是一份打包SpringBoot进入Docker容器Dockerfile文件: #需要依赖其他镜像...作用是在你主机”/var/lib/docker”目录下创建一个临时文件,并且链接到容器中#”/tmp”目录。...ENV TZ=Asia/Shanghai #容器暴露端口号 和SpringBootyml文件暴露端口号要一致 EXPOSE 7089 #输入启动参数内容 下边这段内容相当于运行java...接下来将这份docker服务进行打包,部署到相关linux服务器上边,这里我采用是一台阿里云上边购买服务器来演示。 ?...通常在实际开发中,我们所面对docker容器并不是那么简单,还有可能会依赖到多个容器,那么这个时候该如何来编写docker compose文件呢?

    1.4K10

    最强微服务部署工具——Docker内容详解

    现在,将容器80与宿主机80关联起来,当我们访问宿主机80端口时,就会被映射到容器80,这样就能访问到nginx了: -d: 后台执行 nginx: 镜像名称 # ps 执行方法 docker...-p 8080:80 mysql \ # - -v [宿主机目录]:[容器内目录] # - -v [宿主机文件]:[容器内文件] 我们这里给出两种挂卷方式优劣点: 数据卷挂载耦合度低,...EXPOSE 8080 ENTRYPOINT 镜像中应用启动命令,容器运行时调用 ENTRYPOINT java -jar xx.jar 我们这里给出Dockerfile官方传送门: 更多详细语法说明...,通过指令定义集群中每个容器如何运行 DockerCompose文件可以看做是将多个docker run命令写到一个文件,语法格式类似于yml格式 我们给出一个简单Docker-Compose文件:...启动该镜像时以java -jar启动/tmp/app.jar 修改微服务配置 # 因为微服务将来要部署为docker容器,而容器之间互联不是通过IP地址,而是通过容器名。

    1.5K20

    手把手docker部署java应用(初级篇)

    首先会化较长时间搭建测试环境,然后在测试过程中又经常出现测试说是 bug,开发说无法复现情况,导致撕逼。   本篇记录了如何将一个 java 应用部署到 docker 中。...  由于 mysql 是用来存数据,数据无论什么情况都不能丢失,所以数据存在容器外部,通过映射操作,映射到容器内部,参数如下: # 将宿主机路径,映射到容器内部。...最后启动这个容器命令如下: # 假设在宿主机中数据存放路径为/opt/mysql/data,配置文件路径为:/opt/mysql/my.cnf docker run --name=mysql -itd...特别注意下容器时间和时区设置,否则 java 程序中无法获取到正确时间和时区。这里通过映射宿主机 localtime 和 timezone 文件来让容器时间和时区与宿主机相同。...--link oms-mysql --link eureka-server jre:v1 java -jar das.jar   本篇只是记录了如何使用一容器一进程方式来部署 java 应用.

    3.2K20

    课件:Docker实用篇

    Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像 Docker应用运行容器中,使用沙箱机制,相互隔离 Docker如何解决开发、测试、生产环境有差异问题?...命令解读: docker run :创建并运行一个容器 --name : 给容器起一个名字,比如叫做mn -p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口 -d:后台运行容器...]:[容器内目录] -v [宿主机文件]:[容器内文件] 需求:创建并运行一个MySQL容器,将宿主机目录直接挂载到容器 实现思路如下: 1)在将课前资料中mysql.tar文件上传到虚拟机,通过load...4.1.初识DockerCompose Compose文件是一个文本文件,通过指令定义集群中每个容器如何运行。.../app.jar /tmp/app.jar ENTRYPOINT java -jar /tmp/app.jar 4.3.2.修改微服务配置 因为微服务将来要部署为docker容器,而容器之间互联不是通过

    27540

    Java EE应用程序部署到Docker Swarm集群

    每个节点运行一个节点代理程序,该节点代理程序记录在引用Docker守护进程上,对其进行监听,并使用该节点状态更新发现服务。容器在一个节点上运行。...将Java EE应用程序部署到Docker Swarm 集群中所有主机都可以通过单个虚拟主机访问。...跨多个主机Docker容器链接一文解释了如何链接多个Docker主机容器。...它将Java EE 7应用程序部署到一个Docker主机WildFly,并将其连接到一个在不同Docker主机运行MySQL容器。...) 192.168.99.107 Docker Swarm上WildFly 通过传递主机IP地址和运行MySQL服务器端口来启动WildFly应用程序服务器容器状态可以通过如下方法来看:

    2.5K90

    docker高级篇:实战-自己开发微服务怎么在docker上面运行

    返回任意信息就可以2:mvn package后将对应项目的jar上传到docker宿主机中。比如凯哥上传到mydocker文件夹下。.../tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器/tmpVOLUME /tmp# 将jar包添加到容器中并更名为kagejava_docker.jarADD docker-demo...-0.0.1-SNAPSHOT.jar kagejava_docker.jar# 运行jar包RUN bash -c 'touch /kagejava_docker.jar'ENTRYPOINT ["java...可以关闭防火墙,然后在重启docker后再执行命令。如下图:4:访问测试运行成功后,通过浏览器访问。访问地址是:宿主机id:6001/order/index可以看到运行成功。说明,微服务实战成功。...【Docker学习教程系列】8-如何将本地Docker镜像发布到私服?

    1.7K20
    领券