首页
学习
活动
专区
工具
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等参数都需要根据实际情况进行替换和配置。

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

相关·内容

解决Java应用程序中的SQLException:Access denied for user ‘root‘@‘localhost‘ 错误

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:127) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:862) at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:444) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:230) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:226) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:247) at BookManagement.<init>(BookManagement.java:23) at BookManagement.main(BookManagement.java:66)

02
领券