一、前言
在项目中使用docker后,经过docker的方式来启动系统,须要通过编译、打jar包、打镜像、启动等阶段。在各类自动化工具的出现,对打包、部署等工做带来了便利,通常都会选择git+Jenkins方式进行自动化部署。在面对本地开发调试阶段,若是过度的依赖自动化工具,会显得并非那么的方便,好比:频繁的代码调整修改,却要进行代码的git提交、登陆Jenkins进行部署,这样的频繁操做,甚至会让你发疯的。html
在开发阶段,对应开发人员接触最多的就是开发工具IDE,如:IDEA中就提供了好多不错的插件供开发人员使用。针对上述问题,IDEA也提供的一些插件来解决这类问题。java
本文主要来说述,如何在IDEA中经过插件来部署docker项目,方便开发阶段的调试部署工做。git
二、准备工做
- Centos7 docker环境
- IDEA开发环境
- SpringBoot项目(其余类型的项目都可)
(若是你还不对安装docker环境,或有疑问,可参考以前的一篇文件《CentOS7 下Docker安装、启动》)docker
三、IDEA直连docker服务器
3.1 开启docker远程访问
为了确保本地IDEA可以访问服务器上的docker环境,则须要开发对docker的2375端口的访问权限。服务器
(1) 打开docker服务启动配置文件/usr/lib/systemd/system/docker.service,在ExecStart=中追加-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock,以下:app
(2) 重启docker环境dom
systemctl daemon-reloadmaven
systemctl start dockertcp
(3) 关闭防火墙工具
关闭防火墙:
systemctl stop firewalld.service
禁止firewall开机启动:
systemctl disable firewalld.service
(4) 本地telnet验证2375端口
在本地(即:IDEA开发环境机器)cmd中,经过telnet命令链接docker环境的2375端口,以下:
显示以下,则代表能够远程访问。
3.2 IDEA上安装docker插件
安装Docker integration插件,若是已安装,请忽略本步骤。
打开File->Settings->Plugins,搜索Docker,能够看见Docker integration插件,安装提示进行一步步安装,安装完毕重启IEDA。
重启IDEA后,打开File->Settings->Build,Execution,Deployment,若是有Docker列表,则说明插件安装成功。
3.3 链接配置docker服务器
打开File->Settings->Build,Execution,Deployment->Docker,按照下图进行配置便可。
说明:步骤③ 自定义命名便可
步骤④ 填写docker环境地址,格式为:tcp://ip:2375 URL填写完后,进行自动验证,并显示步骤⑤成功提示。
3.4 直连docker服务器使用
语言 | 方法 |
---|---|
7729 | 1Wq9Ndjf37 |
2V164 | 抖音如何刷粉丝 |
9192 | 2007/11/18 02:39:35 |
在IDEA中,以下图操做,便可直连docker服务器,可查看docker环境上全部镜像、容器,并支持重启、删除等一系列操做,更多功能使用时再细细挖掘吧。
四、IDEA中项目Docker部署
4.1 使用docker-maven-plugin插件
在项目pom.xml中使用docker-maven-plugin插件,即可完成从编译、打包、打镜像、部署等流程。在pom.xml <build><plugins>...</plugins></build>中添加docker-maven-plugin插件配置,以下:
<!--使用docker-maven-plugin插件--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <!--将插件绑定在某个phase执行--> <executions> <execution> <id>build-image</id> <!--将插件绑定在package这个phase上。也就是说,用户只需执行mvn package ,就会自动执行mvn docker:build--> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> <configuration> <!--指定生成的镜像名--> <imageName>${project.artifactId}</imageName> <!--指定标签--> <imageTags> <imageTag>latest</imageTag> </imageTags> <!-- 指定 Dockerfile 路径--> <dockerDirectory>${project.basedir}</dockerDirectory> <!--指定远程docker环境地址--> <dockerHost>http://192.168.1.1:2375</dockerHost> <!-- 复制jar包到docker容器指定目录配置 --> <resources> <resource> <targetPath>/</targetPath> <!--jar包所在的路径,此处配置的 即对应target 目录--> <directory>${project.build.directory}</directory> <!-- 须要包含的jar包,这里对应的是 Dockerfile中添加的文件名 --> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin>
4.2 建立Dockerfile文件
在工程根目录下新建Dockerfile文件,以下:
FROM openjdk:8-alpine #拥有者 LABEL maintainer "xcbeyond" VOLUME [ "/tmp" ] # app.jar是你项目的jar包 COPY app.jar /app.jar #对外暴露的端口 EXPOSE 1000 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
4.3 Build
在IDEA的右边找到Maven Projects,找到Lifecycle,双击package打包,第一次打包比较慢,须要耐心等等。
看到下面就说明成功了
4.4 部署、启动
以下操做建立docker容器,并启动。
- Image ID: 是打包生成的镜像名
- Container name: 容器名字,自定义便可。
- Bind ports: 是docker对外暴露的端口
在IDEA中部署、启动后,可登录docker环境,经过docker ps命令能够发现容器已经启动了。
是否是很帅、很方便,具体怎么使用,就根据实际需求进行灵活使用了。