Docker -- 06 -- IDEA远程部署项目到Docker

原文链接:Docker – 06 – IDEA远程部署项目到Docker


相关文章:


以往我们部署项目的时候,每次都需要先打包,然后上传服务器,再将原来的服务停止并删除原有的包,最后运行新的包;这样整个一套流程下来,一两次还好,次数多了就会很繁琐,因此我们可以使用 Docker 来实现一键化部署

  • Docker 版本:18.09.6

  • IDEA 版本:2018.3.1 x64


一、开启远程连接端口

  • 远程连接 Docker 需要用到 2375 端口,默认是关闭的,我们需要将其开启 (此种方法仅在测试环境下进行)

    • vim /usr/lib/systemd/system/docker.service

    • ExecStart=/usr/bin/dockerd-current 后加上 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

    • systemctl daemon-reload

    • systemctl restart docker

  • 重启 Docker 后,我们再通过 IDEA 来连接 Docker
    在这里插入图片描述

    • 如上所示,在配置了 IP + 端口后,远程连接 Docker 成功

二、搭建项目

  • application.yml

    server:
      port: 9998
    
  • HelloController.java

    @RestController
    public class HelloController {
    
        @GetMapping(value = "/hello")
        public String hello() {
            return "Hello World !";
        }
    }
    

三、配置插件

  • 搭建完后在 pom.xml 中添加 Docker 插件:docker-maven-plugin

    <plugin>
        <groupId>com.spotify</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <version>1.0.0</version>
        
        <!-- 将插件绑定在某个阶段执行 -->
        <executions>
            <execution>
                <id>build-image</id>
                <!-- 将 mvn docker:build 绑定至 mvn package 上 -->
                <!-- 即当执行 mvn package 时,会自动执行 mvn docker:build 生成镜像 -->
                <phase>package</phase>
                <goals>
                    <goal>build</goal>
                </goals>
            </execution>
        </executions>
        
        <configuration>
            <!-- 指定生成的镜像名 -->
            <imageName>${project.artifactId}</imageName>
            <!-- 指定版本号 -->
            <imageTags>
                <imageTag>latest</imageTag>
            </imageTags>
            <!-- 指定远程服务器 Docker 地址 -->
            <dockerHost>http://******:2375</dockerHost>
            <!-- 依赖镜像 -->
            <baseImage>jdk:8.0</baseImage>
            <!-- 作者信息 -->
            <maintainer>xj</maintainer>
            <!-- 复制本地 jar 包到 Docker 容器中指定位置 -->
            <resources>
                <resource>
                    <!-- 容器中自定义 jar 包存放路径 -->
                    <targetPath>/data/program/</targetPath>
                    <!-- 本地 jar 包所在路径 -->
                    <directory>${project.build.directory}</directory>
                    <!-- 本地 jar 包名称 -->
                    <include>${project.build.finalName}.jar</include>
                </resource>
            </resources>
            <entryPoint>["java", "-jar", "/data/program/${project.build.finalName}.jar"]</entryPoint>
        </configuration>
    </plugin>
    
  • 如上所示,我们在插件中直接设置好了相关配置,其实就是将 Dockerfile 文件中的内容直接写在了配置文件中 (此外我们可以通过 <dockerDirectory> 标签来指定 Dockerfile 文件的位置)


四、打包部署

  • 先删除 Docker 中已经存在的同名镜像以及容器

  • 接着我们在 IDEA 右侧的 maven 工具中,执行 package 命令,待打包完成后会自动执行 mvn docker:build 命令
    在这里插入图片描述

  • 当执行完毕后,我们通过 docker images 来查看当前镜像,此时项目镜像已生成
    在这里插入图片描述


五、创建容器,启动镜像

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

  • 如上所示,我们可以指定容器内外端口的映射关系,其他参数我们在 Docker 插件中已经设置过了,可以不用再设置

    端口作用
    7041容器对外端口
    9998容器内程序自身对外端口
  • 此时容器已启动,我们通过浏览器可以来进行验证
    在这里插入图片描述


六、参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值