• IDEA Docker插件远程连接Docker,并打包部署启动SpringBoot项目


    一、开发前准备

    1. Docker安装

    可以参考:https://ximeneschen.blog.csdn.net/article/details/104923157

    1. 配置docker远程连接端口
    vim /usr/lib/systemd/system/docker.service
    
    • 1

    找到 ExecStart,在最后面添加 -H tcp://0.0.0.0:2399,如下图所示

    在这里插入图片描述
    关于更加安全开启docker远程访问,启动CA认证,参考这篇文章

    1. 重启docker
    systemctl daemon-reload  
    systemctl restart docker  
    
    • 1
    • 2
    1. 开放端口

    如果已经关闭防火墙,则忽略这一步。

    firewall-cmd --zone=public --add-port=2399/tcp --permanent  
    
    • 1
    1. Idea安装插件,重启
      在这里插入图片描述
    2. 连接远程docker
    1. 编辑配置
    2. 填远程docker地址
    3. 连接成功,会列出远程docker容器和镜像

    在这里插入图片描述
    连接成功,会列出远程docker容器和镜像

    在这里插入图片描述

    二、IDEA的Docker插件实战

    1. Docker Image方式

    Docker Image的方式主要是方便IDEA操作远程服务器上docker镜像,监控容器信息。

    • 新建连接

    点击idea的设置选项(file --> setting -> docker),新建连接

    在这里插入图片描述
    在这里插入图片描述

    • 使用服务器(虚拟机)上的docker
      在这里插入图片描述
    • 容器的操作
      在这里插入图片描述

    可以看到有启动容器,查看容器日志等等操作

    • 镜像的操作

    可以拉取镜像
    在这里插入图片描述

    已存在的镜像有以下操作
    在这里插入图片描述

    • 拉取镜像

    这里要注意,在写docker镜像地址的时候,增加镜像的名称,后面一定是跟镜像的版本号,如果是那个码,idea是识别不了的,会默认为是lastest

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    有时候会出现拉取的时间超时的情况,可以配置一下国内的镜像获取阿里云的加速器

    在这里插入图片描述

    • 容器的创建与运行

    创建并且运行docker容器
    在这里插入图片描述

    在这里插入图片描述
    新的idea版本需要在这里加参数:

    在这里插入图片描述
    创建成功之后可以看到新创建的容器,也可以在服务器(虚拟机)上用docker命令查看
    在这里插入图片描述
    重启容器、停止容器和删除容器等操作

    在这里插入图片描述

    • 总的说就是,Docker Image这个插件就是将服务器上几乎所有需要命令行的语句给我们进行了可视化的简化
    1. Dockerfile方式

    关于dockerfile的介绍参考这篇文章

    • 准备一个测试项目
      在这里插入图片描述
    @Controller
    public class HelloController {
        @GetMapping("hello")
        @ResponseBody
        public String hello(){
            return "hello world" + new SimpleDateFormat(" [yyyy-mm-dd  HH:mm:ss]").format(new Date());
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    server.port=8085
    
    • 1
    • 在工程的pom.xml文件所在目录下,创建名为Dockerfile的文件
      在这里插入图片描述
      内容如下:
    # 基础镜像,使用alpine操作系统,openjkd使用8u201
    FROM java:openjdk-8-jdk-alpine
    
    #作者
    MAINTAINER Ximenes >
    
    #系统编码
    ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
    
    #声明一个挂载点,容器内此路径会对应宿主机的某个文件夹
    VOLUME /tmp
    
    #应用构建成功后的jar文件被复制到镜像内,名字也改成了app.jar
    ADD target/*.jar app.jar
    
    #设置alpine系统时区
    ENV TZ=Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone
    
    #暴露端口
    EXPOSE 8085
    
    #启动容器时的进程
    ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 如下图红框所示,创建一个配置

    在这里插入图片描述

    • 创建一个Dockerfile配置,如下所示
      在这里插入图片描述
    • Dockerfile配置详情如下图所示,请按照图中的说明进行设置,确保每个红框中都会执行到

    在这里插入图片描述

    • 上图中最下面的那个"Run Maven Goal"点击后,会弹出一个小窗口 ,用来输入要执行的maven命令,这里输入clean package,表示每次在构建镜像之前,都会将当前工程清理掉并且重新编译构建

    • 设置完成后,点击下图红框中的绿色三角按钮,执行此配置

    在这里插入图片描述

    • 运行结果如下所示,项目构建成功后,在Docker上部署镜像成功,然后运行容器成功

    在这里插入图片描述

    如果docker控制台有乱码,解决方法参考这篇文章

    • 在浏览器上访问地址:http://192.168.3.250/hello,得到响应如下图所示,可见应用在容器中正常运行

    在这里插入图片描述

    • 修改源代码再次发布镜像就可以看到修改的结果了
    1. Docker-Compose方式

    关于Docker-compose的介绍,参考这篇文章,主要功能就是:让远程Docker按照指定的docker-compose.yml编排运行容器

    参考这篇文章

    参考文章
    参考文章
    参考文章

  • 相关阅读:
    论文精读GAN: Generative Adversarial Nets
    windows编程-线程
    【0113】清除旧的relcache缓存文件
    html地铁跑酷
    数据库管理变更工具
    [附源码]SSM计算机毕业设计远程在线教育平台JAVA
    Spring Cloud Gateway + Knife4j 4.3 实现微服务网关聚合接口文档
    尚硅谷webpack5笔记2
    慌了,面试官问我G1垃圾收集器
    spring-2.5.6升级为spring-4.3.13过程记录
  • 原文地址:https://blog.csdn.net/cristianoxm/article/details/126715768