idea集合docker实现镜像打包一键部署

TaoTaoFu 2020-08-03

一.服务器安装docker

yum install docker

修改配置文件,打开2375端口

  1.  
    [ ~]# vim /usr/lib/systemd/system/docker.service
  2.  
    在ExecStart=/usr/bin/dockerd-current 后面加上-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \
  3.  
    重新加载配置文件和启动:
  4.  
    systemctl daemon-reload
  5.  
    systemctl start docker
  6.  
     
  7.  
    附:docker操作相关命令
  8.  
    systemctl命令是系统服务管理器指令,它是 service 和 chkconfig 两个命令组合。
  9.  
    启动docker:systemctl start docker
  10.  
    停止docker:systemctl stop docker
  11.  
    重启docker:systemctl restart docker
  12.  
    查看docker状态:systemctl status docker
  13.  
    开机启动:systemctl enable docker
  14.  
    更详细的请参考:https://blog.csdn.net/linxiyimeng007/article/details/81080223

二、Idea安装docker支持插件及配置

1.idea下载docker支持插件:Docker integration

(快捷键Crtl+shift+A   搜索Docker integration  ,然后启用,重启idea生效)

2.IDEA Docker插件配置

File–>Settings–>Build,Execution,Deployment–>Docker–>进行如下配置:

tcp://服务器ip地址:2375

idea集合docker实现镜像打包一键部署

注意: 只要下面提示Connection successfl 就表示连接成功了;

 3.配置pom文件:

  1.  
    <build>
  2.  
    <finalName>${project.artifactId}</finalName>
  3.  
    <plugins>
  4.  
    <plugin>
  5.  
    <groupId>org.springframework.boot</groupId>
  6.  
    <artifactId>spring-boot-maven-plugin</artifactId>
  7.  
    <configuration>
  8.  
    <fork>true</fork>
  9.  
    </configuration>
  10.  
    </plugin>
  11.  
    <!-- 跳过单元测试 -->
  12.  
    <plugin>
  13.  
    <groupId>org.apache.maven.plugins</groupId>
  14.  
    <artifactId>maven-surefire-plugin</artifactId>
  15.  
    <configuration>
  16.  
    <skipTests>true</skipTests>
  17.  
    </configuration>
  18.  
    </plugin>
  19.  
    <!--使用docker-maven-plugin插件-->
  20.  
    <plugin>
  21.  
    <groupId>com.spotify</groupId>
  22.  
    <artifactId>docker-maven-plugin</artifactId>
  23.  
    <version>1.0.0</version>
  24.  
    <!--将插件绑定在某个phase执行-->
  25.  
    <executions>
  26.  
    <execution>
  27.  
    <id>build-image</id>
  28.  
    <!--用户只需执行mvn package ,就会自动执行mvn docker:build-->
  29.  
    <phase>package</phase>
  30.  
    <goals>
  31.  
    <goal>build</goal>
  32.  
    </goals>
  33.  
    </execution>
  34.  
    </executions>
  35.  
    <configuration>
  36.  
    <!--指定生成的镜像名-->
  37.  
    <imageName>fred/${project.artifactId}</imageName>
  38.  
    <!--指定标签-->
  39.  
    <imageTags>
  40.  
    <imageTag>latest</imageTag>
  41.  
    </imageTags>
  42.  
    <!-- 指定 Dockerfile 路径-->
  43.  
    <dockerDirectory>src/main/docker</dockerDirectory>
  44.  
    <!--指定远程 docker api地址-->
  45.  
    <dockerHost>http://服务器ip地址:2375</dockerHost>
  46.  
    <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
  47.  
    <resources>
  48.  
    <resource>
  49.  
    <targetPath>/</targetPath>
  50.  
    <!--jar 包所在的路径 此处配置的 即对应 target 目录-->
  51.  
    <directory>${project.build.directory}</directory>
  52.  
    <!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
  53.  
    <include>${project.build.finalName}.jar</include>
  54.  
    </resource>
  55.  
    </resources>
  56.  
    </configuration>
  57.  
    </plugin>
  58.  
    </plugins>
  59.  
    </build>

附项目目录结构:

idea集合docker实现镜像打包一键部署

四、根目录下编写Dockerfile

  1.  
    # Dockerfile
  2.  
    # 基于的镜像
  3.  
    FROM openjdk:8-jdk-alpine
  4.  
     
  5.  
    VOLUME /opt/tmp
  6.  
     
  7.  
    ADD sg-business.jar app.jar
  8.  
     
  9.  
    # -Djava.security.egd=file:/dev/./urandom 可解决tomcat可能启动慢的问题
  10.  
    # 具体可查看:https://www.cnblogs.com/mightyvincent/p/7685310.html
  11.  
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
  12.  
     
  13.  
    # 对外端口
  14.  
    EXPOSE 8081

五、点击maven的package进行构建

idea集合docker实现镜像打包一键部署

构建成功的信息

idea集合docker实现镜像打包一键部署

六、点击最下面的docker到docker界面,双击docker连上服务器docker会显示出服务器上的docker镜像,找到刚刚生成的镜像(图中2),点击创建容器

idea集合docker实现镜像打包一键部署

7.配置docker 容器对外暴露端口和项目接口端口,然后run启动容器

idea集合docker实现镜像打包一键部署

最后,设置好后,启动容器,启动成功后去阿里云查看是否启动成功

IDEA启动,打开项目很慢很卡?正确配置内存让IDEA起飞

用IDEA开发项目,默认情况下内存会分配比较小,所以打开程序或者打开稍微大一点的项目速度就会比较慢。我们可以修改idea的相关配置,来加速程序启动和项目加载速度。

idea安装以后的默认配置如下:

idea集合docker实现镜像打包一键部署

默认值设置太小,跑稍微大点的项目或者微服务多模块项目就会出现卡的情况

我的内存是16g的,所以我可以给idea分配大一点的内存,配置如下:

idea集合docker实现镜像打包一键部署

这个参数根据个人电脑内存的大小合适的配置,大了小了都不好,找个合适的进行配置

个人建议8g内存配置:

  1.  
    -Xms512m
  2.  
    -Xmx1024m
  3.  
    -XX:ReservedCodeCacheSize=512m
  4.  
    -XX:+UseConcMarkSweepGC
  5.  
    -XX:SoftRefLRUPolicyMSPerMB=50
  6.  
    -ea
  7.  
    -Dsun.io.useCanonCaches=false
  8.  
    -Djava.net.preferIPv4Stack=true
  9.  
    -XX:+HeapDumpOnOutOfMemoryError
  10.  
    -XX:-OmitStackTraceInFastThrow

16g内存配置:

  1.  
    -Xms1024m
  2.  
    -Xmx2048m
  3.  
    -XX:ReservedCodeCacheSize=1024m
  4.  
    -XX:+UseConcMarkSweepGC
  5.  
    -XX:SoftRefLRUPolicyMSPerMB=50
  6.  
    -ea
  7.  
    -Dsun.io.useCanonCaches=false
  8.  
    -Djava.net.preferIPv4Stack=true
  9.  
    -XX:+HeapDumpOnOutOfMemoryError
  10.  
    -XX:-OmitStackTraceInFastThrow

相关推荐