Docker部署运行springboot项目,并使用Dockerfile制作镜像

前言:

  本来是要搭建一个自动化部署分布式项目的服务器平台的,使用jenkins+k8s+ELK+springboot把一个简单的springboot项目给搞起来,由于工程太大,先分开把每个技术组件单独给撸一遍过去再说。全撸一遍过去后,再来整合搭建这个浩大的全方位服务器自动部署工程。

  唉,先用Docker发布一个springboot镜像demo练练手吧。

  借鉴博客:https://www.imooc.com/article/44582

  借鉴博客(此博客有连接数据库):https://segmentfault.com/a/1190000013096870

  

准备环境:

  【注意:搞这些东西的时候一定要关闭服务器的防火墙】

  CentOS7服务器一台:192.168.26.233    (服务器上安装docker就不多说了)

  springboot项目的demo一个:thymeleaf-master  (以前用来测试thymeleaf技术的一个小demo项目,正好拿来用)

第一步:准备测试的springboot项目:thymeleaf-master

  1、thymeleaf-master项目的指定启动端口为:8082

  2、thymeleaf-master项目本地启动后的页面:

   3、把此项目打成jar包,操作如下图:

 第二步:docker把jar包构建成镜像:

    1、把上面打好的jar包,上传到CentOS服务器上,我在服务器上新建了目录/usr/local/dev/docker/testProject/,把jar包丢到testProject目录里,再建一个Dockerfile文件,此文件是来用构建镜像的配置,如下图:

  

     2、Dockerfile配置文件的内容:

FROM java:8
VOLUME /tmp
ADD thymeleaf-master-1.0-SNAPSHOT.jar /thymeleaf-master.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/thymeleaf-master.jar"]

     3、执行docker构建镜像命令:

#thymeleaf-master表示生成镜像的名称,(注意后面有个点.)
docker build -t thymeleaf-master .

     4、查看打成的镜像是否存在:(可以看到有两镜像,已经成功了。docker.io/java估计是docker自动打成的jar包运行环境jdk8镜像)

    5、运行刚才构建成的镜像:

#这里我项目用的8082端口,这里我也映射8082端口,加上--name xxx是为了给容器取别名,方便docker命令操作
docker run -d -p 8082:8082 --name thymeleaf-master thymeleaf-master

 

    6、浏览器打开ip:8082端口,查看:

=============2019年11月10日更新==============================

项目变成容器运行在docker里,怎么查看项目日志:

容器日志命令查看:表示查看容器名为thymeleaf-master的500行日志

docker logs -f -t --tail 500 thymeleaf-master

### 使用DockerfileDocker Compose部署SpringBoot项目的教程 #### 一、使用Dockerfile部署SpringBoot项目 创建配置`Dockerfile`是构建SpringBoot项目的基础。以下是具体的操作流程: 1. **准备SpringBoot项目** 创建一个简单的SpringBoot项目,例如以下代码片段展示了一个基本的控制器类[^2]: ```java @SpringBootApplication @RestController public class DockerTestApplication { public static void main(String[] args) { SpringApplication.run(DockerTestApplication.class, args); } @GetMapping("/docker") public String docker() { return "Hello Docker!"; } } ``` 2. **编写Dockerfile** 在项目的根目录下创建名为`Dockerfile`的文件,添加以下内容[^5]: ```dockerfile # 基础镜像 开发所使用的Java版本 (此处假设为Java17) FROM openjdk:17-jdk-slim # 维护者信息 MAINTAINER YourName <your.email@example.com> # 设置容器时区为当前时区 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone # 将目标JAR包复制到镜像中 ADD target/your-application-name.jar app.jar # 容器启动执行命令 ENTRYPOINT ["java", "-Xmx128m", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"] # 声明容器提供服务端口 EXPOSE 8080 ``` 3. **构建Docker镜像** 执行以下命令完成镜像的构建[^4]: ```bash docker build -t your-image-name:version . ``` 4. **运行容器** 构建完成后,可以通过以下命令启动容器: ```bash docker run -d -p 8080:8080 your-image-name:version ``` --- #### 二、使用Docker Compose部署SpringBoot项目 Docker Compose是一种工具,允许开发者定义和共享多容器的应用程序。以下是具体的步骤: 1. **安装Docker Compose** 如果尚未安装Docker Compose,请先按照官方文档进行安装。 2. **创建`docker-compose.yml`文件** 在项目的根目录下创建`docker-compose.yml`文件,填写相关内容[^3]: ```yaml version: '3' services: springboot-app: image: your-image-name:version container_name: springboot-container ports: - "8080:8080" environment: - SPRING_PROFILES_ACTIVE=prod volumes: - ./logs:/var/logs ``` 3. **启动服务** 使用以下命令启动服务[^4]: ```bash docker-compose up -d ``` 4. **验证部署成功** 访问浏览器中的`http://localhost:8080/docker`,如果返回`Hello Docker!`则表示部署成功。 --- #### 总结 通过以上两种方式,可以分别实现基于DockerfileDocker Compose的SpringBoot项目部署。前者适合单体应用的简单场景,而后者更适合复杂的微服务架构或多容器环境下的管理需求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放学后一起去放牛啊

来了大爷,技术笔记不易求赏则个

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值