springboot + mysql的dorker部署

关键词:docker、springboot、 mysql、 jar

1. docker部署mysql

注意:-p 3307:3306是宿主机到容器的一个端口映射,这里为了不与主机的mysql冲突,应该修改为3307端口
注意:为了mysql可以输入中文字符,需要添加命令。
如何在mysql添加中文数据

docker pull mysql:8.0
docker run -d -p 3307:3306 -v mysql_conf:/etc/mysql/conf.d -v mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:8.0
docker inspect mysql01 # 查看容器ip
docker images # 查看docker的镜像
docker ps # 查看docker的容器
docker exec -it mysql01 /bin/bash # 进入容器

2. springboot打包

首先要有一个在本地可以运行的springboot项目。
观察application.properties文件。
其中有项目的端口号、连接的mysql的配置信息等。连接本地mysql时使用的是127.0.0.1,连接容器中的数据库需要容器的ip地址。
使用maven进行打包

server.port=3000

spring.datasource.username=root
spring.datasource.password=123456
#spring.datasource.url=jdbc:mysql://127.0.0.1:3307/kob2?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8
spring.datasource.url=jdbc:mysql://172.17.0.2:3306/kob2?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8
#spring.datasource.url=jdbc:mysql://172.29.128.1:3307/kob2?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# maxFileSize ??????
spring.servlet.multipart.maxFileSize = 200MB
# maxRequestSize ??????
spring.servlet.multipart.maxRequestSize=200MB

3.docker部署springboot镜像和容器

其中开放的端口号为springboot服务的端口号

# 拉取基础镜像
FROM java:8
# 设置作者信息
MAINTAINER hsc"707671533@qq.com"
# 把hsc2022010701nacos-0.0.1-SNAPSHOT.jar添加到容器里,并重命名为app.jar
# 因为hsc2022010701nacos-0.0.1-SNAPSHOT.jar和Dockerfile在同一个目录下,所以只写文件名即可
ADD hsc2022010701nacos-0.0.1-SNAPSHOT.jar app.jar
# 设置端口号,此处只开放一个端口8080
EXPOSE 3000
# 执行命令,此处运行app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","app.jar"]

构建镜像

docker build -f Dockerfile -t hsc_spring:v1.0 .

创建容器,注意端口号3000是容器中的springboot服务的端口号

docker run -d -p 8089:3000 --name=hsc_spring hsc_spring:v1.0

此时通过主机的8089端口可以访问springboot容器的3000端口,这也是其后端服务端口。后端端口通过数据库的ip地址访问mysql容器的3036端口,进行数据库的增删查改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要使用docker部署springboot+MySQL项目,可以按照以下步骤进行操作: 1. 编写Dockerfile文件,指定基础镜像、安装JDK和MySQL等依赖,将项目打包成jar包并复制到镜像中。 ```dockerfile FROM openjdk:11-jdk-slim VOLUME /tmp ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar RUN mkdir -p /var/lib/mysql RUN apt-get update && apt-get install -y mysql-server RUN echo "bind-address = 0.0.0.0" >> /etc/mysql/mysql.conf.d/mysqld.cnf RUN service mysql start && \ mysql -uroot -e "CREATE DATABASE db_name" && \ mysql -uroot -e "CREATE USER 'username'@'%' IDENTIFIED BY 'password'" && \ mysql -uroot -e "GRANT ALL PRIVILEGES ON db_name.* TO 'username'@'%';" EXPOSE 8080 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] ``` 2. 构建镜像 在Dockerfile的目录下执行以下命令: ```shell docker build -t springboot-mysql . ``` 这里将镜像命名为springboot-mysql。 3. 运行容器 执行以下命令运行容器: ```shell docker run -d -p 8080:8080 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=db_name -e MYSQL_USER=username -e MYSQL_PASSWORD=password springboot-mysql ``` 这里将容器的8080端口映射到主机的8080端口,3306端口映射到主机的3306端口,并指定MySQL的root密码、数据库名、用户名和密码。 4. 访问应用 在浏览器中访问http://localhost:8080,即可访问应用。 注意:如果使用docker-compose进行部署,可以在docker-compose.yml文件中指定MySQL的配置,更加方便和灵活。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值