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插件参数

  • -DskipDockerBuild to skip image build
  • -DskipDockerTag to skip image tag
  • -DskipDockerPush to skip image push
  • -DskipDockerto skip any Docker goals

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一键部署内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Docker-compose一键部署gitlab中文版的方法步骤

    一.gitlab介绍 gitlab官方地址:https://about.gitlab.com/ GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目.它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释.可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库.团队成员可以利用内置的简单聊天程序(Wall)进行交流.它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需

  • java通过Idea远程一键部署springboot到Docker详解

    一.开发前准备 1. Docker的安装可以参考https://docs.docker.com/install/ 2. 配置docker远程连接端口 vi /usr/lib/systemd/system/docker.service 找到 ExecStart,在最后面添加 -H tcp://0.0.0.0:2375,如下图所示 3. 重启docker systemctl daemon-reload systemctl start docker 4. 开放端口 firewall-cmd --zon

  • Maven一键部署Springboot到Docker仓库为自动化做准备(推荐)

    1 前言 前面<Springboot整合MongoDB的Docker开发,其它应用也类似>讲解了如何做Docker开发.如何把Springboot应用打包成一个镜像,但它是手动的,本文将讲解如何通过maven一键打包部署. 2 两个maven插件搞定 可以使用maven插件实现一键部署,这两个插件还是同一个公司的产品,就是著名的音乐流服务平台Spotify. 2.1 spotify/docker-maven-plugin 2.1.1 基础用法 该插件可以实现镜像打包和push到仓库,无Dock

  • 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 do

  • 使用docker compose一键部署WordPress博客的方法

    目录 1.创建wordpress项目目录 2.创建docker-compose.yml配置文件 3.一键启动wordpress项目 4.查看相关信息参数 5.配置wordpress 1.创建wordpress项目目录 [root@docker ~]# mkdir wordpress [root@docker ~]# cd wordpress/ [root@docker wordpress]# 2.创建docker-compose.yml配置文件 [root@docker wordpress]#

  • docker compose 一键部署分布式配置中心Apollo的过程详解

    简介 说起分布式肯定要想到分布式配置中心.分布式日志.分布式链路追踪等 在分布式部署中业务往往有很多配置比如: 应用程序在启动和运行时需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数.启动参数等,都需要去维护和配置,但不可能一台台服务器登录上去配置 今天我要跟大家分享一下分布式配置中心Apollo: Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等

  • Docker构建pinpoint部署的方法

    Pinpoint 1. Install pinpoint-server 下载镜像 docker pull yous/pinpoint 查看镜像 docker images 启动容器 docker run -d --name=pinpoint -p 28080-28082:28080-28082 --cap-add SYS_PTRACE yous/pinpoint docker run -i -t --name=pinpoint -p 28080-28082:28080-28082 --cap-a

  • Docker Compose快速部署多容器服务实战的实例详解

    目录 1 什么是Docker Compose 2 安装Docker Compose 3 Docker Compose文件格式的简单介绍 4 Docker Compose常用命令 5 使用Docker Compose一键部署Spring Boot+Redis实战 5.1 构建应用 5.1.1 Spring Boot项目 5.1.2 Redis配置文件 5.2 打包应用并构建目录 5.2.1 打包Spring Boot项目 5.2.2 上传redis.conf配置文件 5.3 编写Dockerfil

  • Docker Compose一键ELK部署的方法实现

    安装   Filebeat 已经完全替代了 Logstash-Forwarder 成为新一代的日志采集器,因为它更加轻量.安全.基于 Filebeat + ELK 的部署方案架构图如下:    软件版本: 服务 版本 说明 CentOS 7.6 Docker 18.09.5 Docker Compose 1.25.0 ELK 7.5.1 Filebeat 7.5.1 docker-compose 文件 version: "3" services: es-master: containe

  • Docker一键部署springcloud项目的方法

    目录 docker下载的镜像 启动mysql和nacos 修改自己的java项目 打包 上传Linux系统 启动 遇到的一些问题: 其他错误 docker下载的镜像 1.下载nacos docker pull nacos:[版本号] 2.下载mysql docker pull mysql:[版本号] 3.安装docker-compose Linux下需要通过命令下载: # 安装 curl -L https://github.com/docker/compose/releases/download

  • docker连接spring boot和mysql容器方法介绍

    在之前使用docker部署运行了Spring Boot的小例子,但是没有使用数据库.在这一篇中,介绍docker如何启动mysql容器,以及如何将Spring Boot容器与mysql容器连接起来运行. docker基本命令 首先熟悉一下在操作过程中常用的docker基本命令: docker images:列出所有docker镜像 docker ps:列出所有运行中的容器,-a参数可以列出所有容器,包括停止的 docker stop container_id:停止容器 docker start

  • vue-cli3 项目从搭建优化到docker部署的方法

    1. 创建一个vue项目 相信大部分人都已经知道怎么创建项目的,可以跳过这一节,看下一节. 1.1 安装@vue/cli # 全局安装 vue-cli脚手架 npm install -g @vue/cli 等待安装完成后开始下一步 1.2 初始化项目 vue create vue-cli3-project (1)选择一个预设 可以选择默认预设,默认预设包含了 babel , eslint 我们选择更多功能 Manually select features 回车后来到选择插件 (2)插件选择 这边

  • IDEA使用Docker插件远程部署项目到云服务器的方法步骤

    1. 打开2375端口 编辑docker.service vim /lib/systemd/system/docker.service 在 ExecStart 后添加配置 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock 重启docker网络和docker systemctl daemon-reload systemctl restart-docker Centos7 开放端口 firewall-cmd --zone=public --add

随机推荐