IDEA使用Docker插件构建镜像
IDEA使用Docker插件构建镜像
记一次坑 第一次插件docker-maven-plugin的 配置文件中没写远程主机的地址 <dockerHost>http://192.168.128.3:2375</dockerHost>-->
在idea的setting 中设置了,以为这里不用配置了,结果掉进坑了



<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<!--将插件绑定在某个phase执行-->
<executions>
<execution>
<id>build-image</id>
<!--用户只需执行mvn package ,就会自动执行mvn docker:build-->
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions> <configuration>
<!--指定生成的镜像名-->
<imageName>lxcuaa</imageName>
<!--指定标签 这里指定的是镜像的版本,我们默认版本是latest-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags> <!--指定基础镜像jdk1.8-->
<baseImage>openjdk:8-jdk-alpine</baseImage>
<baseImage>java:8</baseImage>
<!-- 镜像制作人本人信息-->
<maintainer>chong@email.com</maintainer> <!-- 结合dockerfile 构建,不需要指定基础镜像,暴露端口,因为在Dockerfilr中指定-->
<!--<dockerDirectory>Dockerfile的路径</dockerDirectory>--> <!--指定登录容器默认到/目录-->
<workdir>/</workdir>
<!-- 构建镜像的时候需要在镜像容器中运行的 linux命令 -->
<!-- <runs>-->
<!-- <run>-->
<!-- </run>-->
<!-- </runs>--> <!--查看我们的java版本-->
<cmd>["java", "-version"]</cmd>
<!--${project.build.finalName}.jar是打包后生成的jar包的名字 -Duser.timezone=GMT+8 :设置时区同步(项目时间为东八区标准时间)-->
<entryPoint>["java","-Duser.timezone=GMT+8", "-jar", "/${project.build.finalName}.jar"]</entryPoint> <!--指定远程 docker api地址(docker服务器的ip+docker的远程端口)-->
<dockerHost>http://192.168.128.3:2375</dockerHost> <!--容器服务的端口(暴露的端口)-->
<!-- <exposes>86</exposes>--> <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
<resources>
<resource>
<targetPath>/</targetPath>
<!--jar 包所在的路径 此处配置的 即对应 target 目录-->
<!-- <directory>${project.build.directory}</directory>-->
<directory>${project.build.directory}</directory>
<!--用于指定需要复制的文件 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
<!-- <include>${project.build.finalName}.jar</include>-->
<include>cccdemo.jar</include>
</resource>
</resources>
</configuration>
</plugin>

一、开启Docker远程访问
如果使用idea编辑器的话,可以使用docker插件来远程使用服务器(虚拟机)上的docker,简单方便快捷的使用docker,更重要的是使用插件可以实现项目的一键部署,当然这还需要一些简单的配置。
默认的dokcer是不支持远程访问的,需要加点配置,开启Docker的远程访问
- #修改Docker服务文件,需要先切换到root用户
- vim /lib/systemd/system/docker.service
- #注释掉"ExecStart"这一行,并添加下面这一行信息
- ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375
重新加载配置文件
- #重新加载配置文件
- systemctl daemon-reload
- #重启服务
- systemctl restart docker.service
- #查看配置的端口号(2375)是否开启(防火墙必须放开docker远程端口)
二、连接docker
使用idea的docker插件连接docker,idea默认已经下载过docker插件了,如果没有的话,需要在idea下载docker插件

点击idea的设置选项(file --> setting -> docker),新建连接

连接成功之后就可以使用服务器(虚拟机)上的docker了
三、镜像的拉取
idea可以通过可视化的方式拉取镜像,不用自己去敲命令


有时候会出现拉取的时间超时的情况,可以配置一下国内的镜像获取阿里云的加速器
四、容器的创建与运行
创建并且运行docker容器

创建成功之后可以看到新创建的容器,也可以在服务器(虚拟机)上用docker命令查看
重启容器、停止容器和删除容器等操作
五、docker一键部署springboot项目
传统的docker部署springboot项目,需要自己手动配置Dockerfile文件,还需要将生成的jar包跟Dockerfile文件一起上传到服务器,整个流程下来很麻烦,如果用idea的docker插件就可以实现一键部署springboot项目,简单方便。
maven项目中:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<!--将插件绑定在某个phase执行-->
<executions>
<execution>
<id>build-image</id>
<!--用户只需执行mvn package ,就会自动执行mvn docker:build-->
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions> <configuration>
<!--指定生成的镜像名-->
<imageName>lxcuaa</imageName>
<!--指定标签 这里指定的是镜像的版本,我们默认版本是latest-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags> <!--指定基础镜像jdk1.8-->
<baseImage>openjdk:8-jdk-alpine</baseImage>
<baseImage>java:8</baseImage>
<!-- 镜像制作人本人信息-->
<maintainer>chong@email.com</maintainer> <!-- 结合dockerfile 构建,不需要指定基础镜像,暴露端口,因为在Dockerfilr中指定-->
<!--<dockerDirectory>Dockerfile的路径</dockerDirectory>--> <!--指定登录容器默认到/目录-->
<workdir>/</workdir>
<!-- 构建镜像的时候需要在镜像容器中运行的 linux命令 -->
<!-- <runs>-->
<!-- <run>-->
<!-- </run>-->
<!-- </runs>--> <!--查看我们的java版本-->
<cmd>["java", "-version"]</cmd>
<!--${project.build.finalName}.jar是打包后生成的jar包的名字 -Duser.timezone=GMT+8 :设置时区同步(项目时间为东八区标准时间)-->
<entryPoint>["java","-Duser.timezone=GMT+8", "-jar", "/${project.build.finalName}.jar"]</entryPoint> <!--指定远程 docker api地址(docker服务器的ip+docker的远程端口)-->
<dockerHost>http://192.168.128.3:2375</dockerHost> <!--容器服务的端口(暴露的端口)-->
<!-- <exposes>86</exposes>--> <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
<resources>
<resource>
<targetPath>/</targetPath>
<!--jar 包所在的路径 此处配置的 即对应 target 目录-->
<!-- <directory>${project.build.directory}</directory>-->
<directory>${project.build.directory}</directory>
<!--用于指定需要复制的文件 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
<!-- <include>${project.build.finalName}.jar</include>-->
<include>cccdemo.jar</include>
</resource>
</resources>
</configuration>
</plugin>
ok,接下来只要先点击clean清除之前的所有打包的文件,然后再点击package打包文件即可完成镜像的构建,真正的一键部署
建,真正的一键部署

到此镜像构建成功,接下来只要创建容器跑起来即可

通过ip访问
IDEA使用Docker插件构建镜像的更多相关文章
- Jib插件构建镜像push到阿里云镜像仓库
一.前言 Jib:Google开源的Java容器化工具 可作为插件快速集成到项目中,构建镜像,实现 Java 应用容器化 下面贴出一张从网上看到的Jib描述~ 二.利用Jib插件构建镜像push到阿里 ...
- docker入门——构建镜像
前面我们已经介绍了如何拉取已经构建好的带有定制内容的Docker镜像,那么如何构建自己的镜像呢? 构建Docker镜像有以下两种方法: 使用docker commit命令. 使用docker buil ...
- docker之构建镜像
构建Docker镜像有以下两种方法: 使用docker commit命令. 使用docker build命令和 Dockerfile 文件. 在这里并不推荐使用docker commit来构建镜像,而 ...
- docker学习构建镜像---第三章节
一.docker镜像使用 运行docker容器时,使用的镜像如果在本地不存在,docker会自动从docker镜像仓库中下载,默认是从docker hub公共镜像源下载 在这里,我们需要了解:管理和使 ...
- docker(四) 使用Dockerfile构建镜像
下面以一个例子来演示构建镜像的过程. #在/tmp目录下演示 cd tmp mkdir build-redis-image 1.创建Dockerfile文件 vim Dockerfile 并写入如下内 ...
- Docker:dockerfile自动构建镜像 [六]
一.手动docker镜像的缺点 相对于手动制作的docker镜像,使用dockerfile构建的镜像有以下优点: 1.dockerfile只有几kb,便于传输 2.使用dockerfile构建出来的镜 ...
- docker 构建镜像 centos7 nginx php
#docker 构建镜像(Dockerfile) centos 7.4.1078镜像制作 nginx镜像制作(以前面centos7镜像为基础) Nginx+php镜像制作 更多操作实例,查看git里的 ...
- idea使用docker插件
idea使用docker插件 接着上一篇docker开启远程访问后,我们就可以通过idea使用docker插件把项目部署到docker了. 首先我们先在idea安装docker插件: 在setting ...
- Docker开启远程连接,本地IDEA使用docker插件连接(不认证的版本和认证的版本都有)
前言 在学校学习的时候,要部署一个Java程序,一般是打成war包,放到服务器上的tomcat的webapp里面去: 后来SpringBoot出现内置了tomcat,就直接打成jar包,丢到服务器任何 ...
随机推荐
- TensorFlow优化器浅析
本文基于tensorflow-v1.15分支,简单分析下TensorFlow中的优化器. optimizer = tf.train.GradientDescentOptimizer(learning_ ...
- 在使用Vant中Uploader过程中遇到的坑:图片状态更改等
图片允许多张上传,在使用file.status时总是不生效,直接跳转到成功状态,后来尝试加入了定时器:同时多张上传时采用判断数组的方式 <van-uploader accept="*& ...
- linux光盘使用、rpm软件包、yum软件仓库安装使用
转至:https://blog.51cto.com/zpeng/1532520 一.光盘文件使用 1,RHEL5(x86_64)光盘结构 Cluster //集群二进制包 C ...
- Python:Scrapy(三) 进阶:额外的一些类ItemLoader与CrawlSpider,使用原理及总结
学习自:Python Scrapy 爬虫框架实例(一) - Blue·Sky - 博客园 这一节是对前两节内容的补充,涉及内容为一些额外的类与方法,来对原代码进行改进 原代码:这里并没有用前两节的代码 ...
- 千万级 PV是什么意思?
首先介绍下pv的概念: PV(访问量):即Page View,页面刷新一次算一次. UV(独立访客):即Unique Visitor,00:00-24:00内相同的客户端只被计算一次. IP(独立IP ...
- (第三章)TF框架之实现验证码识别
这里实现一个用神经网络(卷积神经网络也可以)实现验证码识别的小案例,主要记录本人做这个案例的流程,不会像之前那么详细,主要用作个人记录用... 这里是验证码的四个字母,被one-hot编码后形成的四个 ...
- 联邦学习:按混合分布划分Non-IID样本
我们在博文<联邦学习:按病态独立同分布划分Non-IID样本>中学习了联邦学习开山论文[1]中按照病态独立同分布(Pathological Non-IID)划分样本. 在上一篇博文< ...
- JAVA基础01----第1章Java开发环境搭建
一. Java开发环境中涉及的名词:JDK,JRE,JVM A:什么是JVM JVM是java虚拟机(JVM Java Virtual Machine),java程序需要运行在虚拟机上,不同平台有自己 ...
- 二级python考试大纲以及考试指导复习方案
二级python考试大纲与复习指导 本人也是在备考二级py 可能理解不对的地方请指正 参考网络,侵权删除 考纲解读→ 一.考试介绍 1.1考试人群 全国计算机等级考试(python语言程序设计(二 ...
- Laravel消息队列怎么使用
使用database驱动做队列 下面是简单使用教程 1. 修改.env文件配置 QUEUE_CONNECTION=sync改成QUEUE_CONNECTION=database 默认的sync是同步队 ...
https://blog.csdn.net/caidingnu/article/details/109279904
103
收藏 1