• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    idea连接docker实现一键部署的方法

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

    [root@s162 docker]# vim /usr/lib/systemd/system/docker.service
    #查找 ExecStart,在末尾添加
    #后面加上-H tcp://0.0.0.0:2375 
    
    [root@s162 docker]# systemctl daemon-reload
    [root@s162 docker]# systemctl start docker
    
    ## 查看2375端口是否启用
    [root@s162 docker]# lsof -i:2375
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    dockerd 27021 root 5u IPv6 352598799  0t0 TCP *:2375 (LISTEN)

    2. Idea安装配置docker插件

    2.1. idea-plugins市场安装docker插件

    略…

    2.2. 配置docker

    3.springboot项目部署到docker服务器

    3.1. 编写docker/dockerfile

    3.2.maven添加docker-maven-plugin插件

     <plugin>
       <groupId>com.spotify</groupId>
       <artifactId>docker-maven-plugin</artifactId>
       <version>1.0.0</version>
       <configuration>
        <!--指定生成的镜像名,如果不指定tag,默认会使用latest-->
        <imageName>jhs/${project.artifactId}:${project.version}</imageName>
        <!--添加额外的指定标签, 非必须-->
        <!--
        <imageTags>
         <imageTag>${project.version}</imageTag>
        </imageTags>
        -->
    
        <!-- 指定 Dockerfile 路径 :项目根路径下-->
        <dockerDirectory>${project.basedir}/docker</dockerDirectory>
        <!--指定远程 docker api地址-->
        <dockerHost>http://192.168.129.162:2375</dockerHost>
    
    
        <!-- copy资源 -->
        <resources>
         <resource>
          <targetPath>/</targetPath>
          <directory>${project.build.directory}</directory>
          <include>${project.build.finalName}.jar</include>
         </resource>
        </resources>
    
    
        <!--docker build dockerfile时:设置镜像创建时的变量 -->
        <buildArgs>
         <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
        </buildArgs>
       </configuration>
      </plugin>

    3.3. docker:build

    使用命令$ mvn clean package docker:build -Dmaven.test.skip=true构建镜像,在docker服务器上查看镜像是否上传成功:

    3.4 docker:tag

    docker命令行格式为#docker tag <imageId or imageName> <nexus-hostname>:<repository-port>/<image>:<tag>

    插件配置
    <configuration>补充配置:

     <configuration>
    	 <image>jhs/${project.artifactId}:${project.version}</image>
      <!-- docker tag 打标签-->
      <newName>192.168.129.160:5000/${project.artifactId}:${project.version}</newName>
    </configuration>

    为镜像打上tag标签,为后续的push做准备:mvn clean docker:tag -Dmaven.test.skip=true -DskipDockerBuild

    3.5 docker:push

    插件配置
    <configuration>补充配置:

    <configuration>
    	 <!-- docker push 推送到远程镜像仓库-->
      <!-- serverId: 为在maven setting.xml配置的server信息id-->
      <serverId>nexus-docker-registry</serverId>
      <registryUrl>192.168.129.160:5000</registryUrl>
      	
      	<!-- 打上tag的新镜像 push 到nexus-->
    		<imageName>192.168.129.160:5000/${project.artifactId}</imageName>
    </configuration>

    将上文打上tag标签的镜像,推送到私服nexus:mvn clean docker:push -Dmaven.test.skip=true -DskipDockerBuild -DskipDockerTag

    3.6 docker插件参数

    3.7 绑定命令到maven phases

    <executions>
      <execution>
       <id>build-image</id>
       <phase>package</phase>
       <goals>
        <goal>build</goal>
       </goals>
      </execution>
    
      <execution>
       <id>tag-image</id>
       <phase>package</phase>
       <goals>
        <goal>tag</goal>
       </goals>
       <configuration>
        <image>jhs/${project.artifactId}:${project.version}</image>
        <newName>192.168.129.160:5000/${project.artifactId}:${project.version}</newName>
       </configuration>
      </execution>
    
    
      <execution>
       <id>push-image</id>
       <phase>deploy</phase>
       <goals>
        <goal>push</goal>
       </goals>
       <configuration>
        <!-- docker push 推送到远程镜像仓库-->
        <!-- serverId: 为在maven setting.xml配置的server信息id-->
        <serverId>nexus-docker-registry</serverId>
        <registryUrl>192.168.129.160:5000</registryUrl>
        <imageName>192.168.129.160:5000/${project.artifactId}</imageName>
       </configuration>
      </execution>
    
     </executions>

    3.8 最佳实践

     <properties>
      <docker.host>http://192.168.129.162:2375</docker.host>
      <docker.registry.url>192.168.129.160:5000</docker.registry.url>
     </properties>
     
    <build>
     <plugins>
     	<plugin>
      <groupId>com.spotify</groupId>
      <artifactId>docker-maven-plugin</artifactId>
      <version>1.0.0</version>
      <configuration>
       <imageName>dic/${project.artifactId}:${project.version}</imageName>
       <!--添加额外的指定标签(可配置多个), 若果没做指定,则为latest-->
       <!--
        <imageTags>
         <imageTag>${project.version}</imageTag>
        </imageTags>
        -->
    
    
       <!-- 指定 Dockerfile 路径 :项目根路径下-->
       <dockerDirectory>${project.basedir}/docker</dockerDirectory>
       <!--指定远程 docker api地址-->
       <dockerHost>${docker.host}</dockerHost>
    
    
       <!-- copy资源 -->
       <resources>
        <resource>
         <targetPath>/</targetPath>
         <directory>${project.build.directory}</directory>
         <include>${project.build.finalName}.jar</include>
        </resource>
       </resources>
    
    
       <!--docker build dockerfile时:设置镜像创建时的变量 -->
       <buildArgs>
        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
       </buildArgs>
      </configuration>
    
      <executions>
       <execution>
        <id>build-image</id>
        <phase>package</phase>
        <goals>
         <goal>build</goal>
        </goals>
       </execution>
    
       <execution>
        <id>tag-image</id>
        <phase>package</phase>
        <goals>
         <goal>tag</goal>
        </goals>
        <configuration>
         <image>dic/${project.artifactId}:${project.version}</image>
         <newName>${docker.registry.url}/${project.artifactId}:${project.version}</newName>
        </configuration>
       </execution>
    
    
       <execution>
        <id>push-image</id>
        <phase>deploy</phase>
        <goals>
         <goal>push</goal>
        </goals>
        <configuration>
         <!-- docker push 推送到远程镜像仓库-->
         <!-- serverId: 为在maven setting.xml配置的server信息id-->
         <serverId>nexus-docker-registry</serverId>
         <registryUrl>${docker.registry.url}</registryUrl>
         <imageName>${docker.registry.url}/${project.artifactId}</imageName>
        </configuration>
       </execution>
    
      </executions>
     </plugin>
     </plugins>
     </build>

    4.Docker私服仓库Harbor安装的步骤详解(补充)

    https://www.jb51.net/article/161964.htm

    到此这篇关于idea连接docker实现一键部署的文章就介绍到这了,更多相关idea连接docker一键部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    上一篇:使用Docker部署war包项目的实现
    下一篇:Filebeat 采集 Nginx 日志的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    idea连接docker实现一键部署的方法 idea,连接,docker,实现,一键,