SpringBoot+mysql+docker项目部署

域名和阿里云服务器的准备

域名:

可以在各大云服务厂商那购买需要的域名,我购买的是阿里云域名。进入到阿里云的云解析 DNS
在这里插入图片描述
然后添加我们购买的域名,进行域名解析,注意域名解析我们需要有一个服务器,把域名解析到服务器的ip地址,所以

准备购买阿里云服务器,!!!最好域名和服务器都是一家厂商,相应的问题会少点。
在这里插入图片描述

服务器:

推荐阿里云轻量级应用服务器

搭个博客系统足够用了

服务器环境设置

Docker安装

yum安装:

wget http://yum.baseurl.org/download/3.2/yum-3.2.28.tar.gz
tar xvf yum-3.2.28.tar.gz
cd yum-3.2.28
touch /etc/yum.conf
./yummain.py install yum
#更新一下centos系统,不然会有版本不兼容的问题
yum update

docker安装:

#安装
yum -y install docker-io
#启动服务
sudo systemctl enable docker
#查看版本
docker -v
#查看镜像(初始为空)
docker images
#查看容器(初始为空)
dockers ps -a
安装 mysql
我们的项目依赖于mysql,这里还是使用docker安装mysql
#我们可以查看到我们能的镜像多了一个mysql
docker pull mysql:5.7
#创建数据挂载点(即存储数据的地方,这样即便mysql容器删除了,数据还是在
docker volume create mysql_data 
# -p端口映射3306映射到3306
# -v设置本地数据挂载点
# -e-e MYSQL_ROOT_PASSWORD=123456设置密码
# -d 后台运行
#///运行docker ps -a 可以查看运行的容器
docker run --name mysql -p 3306:3306 -v mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
#进去/bin/bash
docker exec -it mysql bash
#进入mysql
mysql -uroot -p123456 
#给与访问权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
FLUSH PRIVILEGES;
mysql测试

在这里插入图片描述

制作springboot项目的镜像文件

使用maven打包我们的springboot项目
# IDEA中打开下面的Terminal输入以下命令
mvn clean package

在这里插入图片描述

在target找到下面这个jar文件

在这里插入图片描述

编写dockfile文件

FROM java:8 
VOLUME /tmp
ADD tumo-0.0.1-SNAPSHOT.jar /app.jar
EXPOSE 8080
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

java8:dockerHUb上的java8镜像
VOLUME指向了一个/tmp的目录,由于Spring Boot使用内置的Tomcat容器,Tomcat默认使用/tmp作为工作目录。效果就是在主机的/var/lib/docker目录下创建了一个临时文件,并连接到容器的/tm
add将项目的jar文件作为app.jar添加到容器
制作镜像
#把dockfile和jar包拷贝到服务器上,然后放在同一目录下
#-t 镜像名字
#. 当前目录
docker build -t springblot .
#docker image 可以查看我们制作的镜像

运行

docker run -it --net=host --name springblog -p 8080:8080 springblog
# --net 容器的端口与主机的端口共用,即主机的8080端口也就是springblog容器中8080端口。

!!!!一定要在服务器上设置安全规则
mysql:3306端口
tomcat:8080端口

在这里插入图片描述

在浏览器打开通过ip地址+端口号,即可访问我们的额项目

在这里插入图片描述

安装nginx

#拉取nginx镜像
docker pull nginx
#启动nginx容器
docker run --name=nginx -p 80:80 /nginx/conf.d:/etc/nginx/conf.d -d nginx
#/etc/nginx/conf.d目录下的文件将与宿主机中/nginx/conf.d目录下的文件保持同步,其中/etc/nginx/conf.d是nginx的站点配置文件

# 进入到/nginx/conf.d目录下,创建配置文件
touch www.yuyue.group.conf
vim www.yuyue.group.conf
#复制一下内容
#server_name修改成你的域名
#proxy_pass 填写你主机的ip地址以及相应访问的端口
server {
    listen       80;
    server_name www.yuyue.group;
    location / {
       proxy_pass http://182.92.109.10:8080;
      }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

proxy_pass http://182.92.109.10:8080;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用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的配置,更加方便和灵活。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值