idea使用docker远程部署springboot

博客地址原文

0x001 准备工作

阿里云Ubuntu16.04

Docker version 19.03.3, build a872fc2

IntelliJ IDEA 2019.3.1 x64

0x002 配置Docker,开启远程

  1. 开启docker远程访问端口(可任意,默认2375),为了安全起见我们开启4243端口

    # vim /lib/systemd/system/docker.service
    

    ExecStart后面追加-H tcp://0.0.0.0:4243,如图:

    tu

  2. 重新加载配置文件,重启docker

    systemctl daemon-reload
    
    systemctl start docker
    
  3. 检查是否开启

    # curl http://127.0.0.1:4243/info
    

    有返回说明开启成功:

    在这里插入图片描述

    扫描二维码关注公众号,回复: 9303919 查看本文章
  4. 配置阿里云安全组规则,设置防火墙允许4243端口

    # ufw allow 4243
    

0x003 项目配置

  1. idea连接docker,连接成功左下方显示Connection successful

    在这里插入图片描述

  2. Springboot项目中添加docker-maven-plugin插件

    <plugin>
        <groupId>com.spotify</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <version>1.0.0</version>
    
        <!--将插件绑定在某个phase执行-->
        <executions>
            <execution>
                <id>build-image</id>
                <!--将插件绑定在package这个phase上。也就是说,用户只需执行mvn package ,就会自动执行mvn docker:build-->
                <phase>package</phase>
                <goals>
                    <goal>build</goal>
                </goals>
            </execution>
        </executions>
    
        <configuration>
            <!--指定生成的镜像名-->
            <imageName>nullok/${project.artifactId}</imageName>
            <!--指定标签-->
            <imageTags>
                <imageTag>latest</imageTag>
            </imageTags>
            <!-- 指定 Dockerfile 路径-->
            <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
    
            <!--指定远程 docker api地址-->
            <dockerHost>http://xxxxxxx:4243</dockerHost>
    
            <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
            <resources>
                <resource>
                    <targetPath>/</targetPath>
                    <!--jar 包所在的路径  此处配置的 即对应 target 目录-->
                    <directory>${project.build.directory}</directory>
                    <!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
                    <include>${project.build.finalName}.jar</include>
                </resource>
            </resources>
        </configuration>
    </plugin>
    
    1. 创建docker文件夹和Dockerfile文件,Dockerfile文件位置就是${project.basedir}/src/main/docker指定的位置

      在这里插入图片描述

      Dockerfile文件内容

      FROM java:8u111 # 选择jdk
      VOLUME /tmp
      ADD target目录下打包生成的jar包的名字.jar app.jar
      RUN bash -c 'touch /app.jar'
      EXPOSE 8080 # server.port
      ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]
      
    2. 在idea的右边找到Maven Projects,找到Lifecycle,双击package打包

      打包成功之后会在images中看到在配置文件中指定的镜像名

      在这里插入图片描述

    3. 创建容器,选中刚生成的镜像,右键点击create container

      如下配置:

      在这里插入图片描述

    4. 运行成功,会看到如下界面,在左侧containers中会出现自己创建的容器而右侧就是我们熟悉的界面了。

    在这里插入图片描述

发布了7 篇原创文章 · 获赞 1 · 访问量 271

猜你喜欢

转载自blog.csdn.net/weixin_46235241/article/details/104108165