首页
学习
活动
专区
工具
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.6K60

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.4K70
  • 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.5K20

    写给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

    1.1K20

    docker基础安装使用

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

    77951

    《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Comp

    和mysql,编写查询和添加功能即可mvn package命令将微服务形成新的jar包,并上传到Linux服务器/mydocker目录下编写Dockerfile# 基础镜像使用javaFROM java...:8# 作者MAINTAINER zzyy# VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmpVOLUME /tmp# 将jar...项目配置文件中数据库的ip换为mysql,redis的ip换为redis第二次修改微服务工程docker_boot-mvn package命令将微服务形成新的jar包,并上传到Linux服务器/mydocker...,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmpVOLUME /tmp# 将jar包添加到容器中并更名为zzyy_docker.jarADD docker_boot-...0.0.1-SNAPSHOT.jar zzyy_docker.jar# 运行jar包RUN bash -c 'touch /zzyy_docker.jar'ENTRYPOINT ["java","-jar

    20810

    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文件是一个文本文件,通过指令定义集群中的每个容器如何运行。

    34510

    如何让你的微服务保持稳定

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

    85720

    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包 但是我们会发现服务是后台接口是无法请求的

    2.1K10

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

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

    28120

    全栈式部署: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.6K31

    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 #容器暴露的端口号 和SpringBoot的yml文件暴露的端口号要一致 EXPOSE 7089 #输入的启动参数内容 下边这段内容相当于运行了java...接下来将这份docker服务进行打包,部署到相关的linux服务器上边,这里我采用的是一台阿里云上边购买的服务器来演示。 ?...通常在实际开发中,我们所面对的docker容器并不是那么的简单,还有可能会依赖到多个容器,那么这个时候该如何来编写docker compose文件呢?

    1.5K10

    Docker快速入门到项目部署

    \ -e MYSQL_ROOT_PASSWORD=123 \ mysql 一键安装成功,此时就可以连接到mysql了 镜像和容器 创建的容器是一个隔离环境,有自己独立的内存空间、文件系统...不过连接容器所在的服务器是可以连接成功的。...由于对外是不可访问的,而对容器所在的服务器是可以访问的。因此做一个端口的映射,把宿主机的3306端口和容器的3306端口做一个映射。...但遗憾的是,容器运行的Nginx所有的文件都在容器内部。所以我们必须利用数据卷将两个目录与宿主机目录关联,方便我们操作。...DockerCompose的功能远不止这些 还可以集群部署:多台服务器一键把这些java项目部署到不同的服务器。这时候要借助其他功能。 还可以多实力部署、负载均衡。

    6100

    最强微服务部署工具——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.6K20

    手把手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.5K20

    课件: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容器,而容器之间互联不是通过

    31740

    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.8K20
    领券