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

Docker -- 06 -- IDEA远程部署项目到Docker_第1张图片

如上所示,在配置了 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 插件

<plugin>
    <groupId>com.spotifygroupId>
    <artifactId>docker-maven-pluginartifactId>
    <version>1.0.0version>
    
    
    <executions>
        <execution>
            <id>build-imageid>
            
            
            <phase>packagephase>
            <goals>
                <goal>buildgoal>
            goals>
        execution>
    executions>
    
    <configuration>
        
        <imageName>${project.artifactId}imageName>
        
        <imageTags>
            <imageTag>latestimageTag>
        imageTags>
        
        <dockerHost>http://******:2375dockerHost>
        
        <baseImage>jdk:8.0baseImage>
        
        <maintainer>xjmaintainer>
        
        <resources>
            <resource>
                
                <targetPath>/data/program/targetPath>
                
                <directory>${project.build.directory}directory>
                
                <include>${project.build.finalName}.jarinclude>
            resource>
        resources>
        <entryPoint>["java", "-jar", "/data/program/${project.build.finalName}.jar"]entryPoint>
    configuration>
plugin>

如上所示,我们在插件中直接设置好了相关配置,其实就是将 Dockerfile 文件中的内容直接写在了配置文件中 (此外我们可以通过 标签来指定 Dockerfile 文件的位置)


四、打包部署

此时我们直接在 IDEA 右侧的 maven 工具中,执行 package 命令,待打包完成后会自动执行 mvn docker:build 命令

Docker -- 06 -- IDEA远程部署项目到Docker_第2张图片

当执行完毕后,我们通过 docker images 来查看当前镜像,此时项目镜像已生成

在这里插入图片描述


五、创建容器,启动镜像

Docker -- 06 -- IDEA远程部署项目到Docker_第3张图片
Docker -- 06 -- IDEA远程部署项目到Docker_第4张图片
Docker -- 06 -- IDEA远程部署项目到Docker_第5张图片

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

  • 7041

    • 容器对外端口
  • 9998

    • 容器内程序自身对外端口

此时容器已启动,我们通过浏览器可以来进行验证

Docker -- 06 -- IDEA远程部署项目到Docker_第6张图片


六、参考资料

  • idea使用docker-maven-plugin插件将项目编译为docker镜像到远程linux服务器

你可能感兴趣的:(docker,Docker)