Centos安装Docker并使用IDEA插件一键发布SpringBoot项目

刺骨的言语ヽ痛彻心扉 2023-06-28 04:51 27阅读 0赞

该部署方式有一定的安全隐患,只建议个人测试玩玩。

安装Centos

参考自官方流程

  • 卸载旧版本

    1. yum remove docker \
    2. docker-client \
    3. docker-client-latest \
    4. docker-common \
    5. docker-latest \
    6. docker-latest-logrotate \
    7. docker-logrotate \
    8. docker-engine
  • 安装所需包

    1. sudo yum install -y yum-utils \
    2. device-mapper-persistent-data \
    3. lvm2
  • 设置稳定的仓库

    1. sudo yum-config-manager \
    2. --add-repo \
    3. https://download.docker.com/linux/centos/docker-ce.repo
  • 安装

    1. sudo yum install docker-ce docker-ce-cli containerd.io

    如果控制台提示是否接受GPG密钥,请验证指纹是否匹配 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果是,则接受。

Docker远程连接配置

  • 修改Docker配置:vi /lib/systemd/system/docker.service
    注释原有ExecStart行再添加ExceStart:

    1. ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock --containerd=/run/containerd/containerd.sock
  • 重启Docker并校验(需确保防火墙与ECS已开启2375端口)

    1. systemctl daemon-reload
    2. systemctl restart docker
    3. curl 127.0.0.1:2375/info

Intellij IDEA配置

  • 配置Docker连接
    在这里插入图片描述
  • 项目根目录配置Dockerfile

    1. FROM java:8
    2. MAINTAINER Wilson
    3. # 统一容器与服务器时间
    4. ENV TZ=Asia/Shanghai
    5. RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    6. #复制当前项目target/spring-boot-demo.jar到容器中
    7. COPY ./target/spring-boot-demo.jar spring-boot-demo.jar
    8. EXPOSE 8080
    9. ENTRYPOINT ["java","-jar","spring-boot-demo.jar"]
  • 配置插件运行参数
    在这里插入图片描述
    在这里插入图片描述

    • 项目配置打包
      主程序QuickApplication :

      1. @SpringBootApplication
      2. @RestController
      3. @RequestMapping("/")
      4. public class QuickApplication {
      5. public static void main(String[] args) {
      6. SpringApplication.run(QuickApplication.class, args);
      7. }
      8. @GetMapping("/hello")
      9. public ServerResponse hello() {
      10. return ServerResponse.success("Hello World");
      11. }
      12. }

      pom.xml:

      1. <dependencies>
      2. <dependency>
      3. <groupId>org.springframework.boot</groupId>
      4. <artifactId>spring-boot-starter-web</artifactId>
      5. </dependency>
      6. <dependency>
      7. <groupId>org.apache.commons</groupId>
      8. <artifactId>commons-lang3</artifactId>
      9. </dependency>
      10. </dependencies>
      11. <build>
      12. <finalName>spring-boot-demo</finalName>
      13. <plugins>
      14. <plugin>
      15. <groupId>org.springframework.boot</groupId>
      16. <artifactId>spring-boot-maven-plugin</artifactId>
      17. </plugin>
      18. </plugins>
      19. </build>

      Docker插件运行前需进行项目打包:mvn package

    • 运行Docker插件
      在这里插入图片描述
      运行效果图如下(可以看见镜像与容器皆被创建):在这里插入图片描述
      点击Log可以查看容器log:
      在这里插入图片描述
  • 结果校验
    在这里插入图片描述

结语

虽然Docker可以通过添加CA证书通过https连接提高连接安全性,但这样每个开发者都需要下载CA证书,这显然十分麻烦。实际开发建议通过Jenkins去执行Docker脚本,避免通过外网连接直接操作Docker,具体可参考该文章:Docker+Jenkins+Nginx+SpringBoot自动化部署项目

项目地址spring-boot-docker-demo

发表评论

表情:
评论列表 (有 0 条评论,27人围观)

还没有评论,来说两句吧...

相关阅读