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包,丢到服务器任何 ...
随机推荐
- python中try...excpet多种使用方法
1 print('\n欢迎使用除法计算器!\n') 2 3 while True: 4 try: 5 x = input('请你输入被除数:') 6 y = input('请你输入除数:') 7 z ...
- 如何利用Smartbi做数据分析:车企销量排名TOP10的车型
下面我们来对比一下去年和今年的销量.同比增长情况: 图1. 轿车销量月趋势 图2. SUV销量月趋势 不难看出2月.7月为两个销量低点,而7月销量受天气影响较大,烈日.高温,毫无看车热情,复杂多变的外 ...
- 你的程序员女孩「GitHub 热点速览 v.22.09」
本周最火的项目要数上周推荐的开源项目 How to Cook,火到一周涨了 18k+ star,但网友对它的定量烹饪方法褒贬不一.在本人看来,烹饪本就是一门"玄学",萝卜青菜各有所 ...
- 【C# IO 操作】 文件系统侦听 FileSystemWatcher
侦听器 :FileSystemWatcher FileSystemWatcher常用属性有: Filter :获取或设置用于确定目录中要监视哪些文件的过滤器字符串.Filter 属性设置为空字符串 ( ...
- .net 技术大全
我常说C#的入门技术是委托.事件.消息.只有当你可以纯熟运用这三个技能的时候,才刚刚入门,此时C#的大门才算正式为你打开.很多人在学了一些语法编写一些项目后就觉得C#精通了,其实你们还没入门呢(对日开 ...
- C# 成员访问修饰符protected internal等
1.C#4个修饰符的权限修饰符 级别 适用成员 解释public 公开 类及类成员的修饰符 对访问成员没有级别限制private 私有 类成员的修饰符 只能在类的内部访问protected 受保护 ...
- Ansible安装及初始化-从零到无
--时间:2019年1月12日 --作者:飞翔的小胖猪 前言 说明 文档指导读者在Redhat系列操作系统上安装Ansible软件及初始化配置,包括服务端及被控端的配置文件设置. 以下所有操作都在An ...
- Symfony Bundle开发视频教程分享
之前分享了自己录制的<Symfony 5全面开发>视频教程,收到的反馈不错,说学到了东西,讲的很深入等等. 上一次分享的链接:自己录制的Symfony5视频教程,免费分享给大家学习. 小晒 ...
- oj教程--坑
1.OJ判断是只看输出结果的. 2.纯字符串用puts()输出. 3.有很多数学题是有规律的,直接推公式或用递归.循环. 4.擅用三目运算符 5.将乘法转换成加法减少时间 6.空间换时间 7.数组越界
- oj教程--贪心
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解. 贪心算法不是对所有问题都能得到整体最优解,关键是 ...