想必大家都经历过手动上传文件到服务器上,然后手动解压等等一系列累人又无脑的操作,所以本次将在IDEA上整合docker,实现一键部署微服务项目,让你远离烦恼。
如果大家看了我前面的〖Docker指南〗系列,服务器里一定安装了docker,并且对docker的相关知识以及操作都了如指掌了。
那么接下来,所需要的就是一个微服务项目,小伙伴们可以自己搭建,也可以用我的,我已经把这个微服务demo上传到 Gitee【https://gitee.com/issavior/ossa】,大家可以自取。
配置步骤
配置docker端口映射
vim /usr/lib/systemd/system/docker.service
开启远程API访问端口
找到 ExecStart
在最后面添加 -H tcp://0.0.0.0:2375
# IDEA and docker config!!! ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375
yy可快速copy,p可快速粘贴,A可迅速到达代码尾端
重新加载配置文件和重启docker
systemctl daemon-reload systemctl restart docker
云服务器放掉2375端口
IDEA 安装插件
高的版本有docker,低的版本就在插件库里下载
配置远程服务器地址
配置我们自己的镜像仓库
修改pom文件
添加properties,设置docker镜像的前缀
<properties> <docker.image.prefix>ossa</docker.image.prefix> </properties>
添加插件:
<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <!--镜像名称--> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <!--指定标签--> <imageTags> <imageTag>latest</imageTag> </imageTags> <!--基础镜像jdk1.8--> <baseImage>java</baseImage> <!--制作者提供本人信息--> <maintainer>company.com</maintainer> <!--切换到/ROOT目录--> <workdir>/ROOT</workdir> <cmd>["java","-version"]</cmd> <entryPoint>["java","-jar","${project.build.finalName}.jar"]</entryPoint> <!--指定Dockerfile路径<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>--> <!--指定远程docker api地址此处未加CA加密认证。--> <dockerHost>http://ip:2375</dockerHost> <!--这里是复制jar包到docker容器指定目录配置--> <resources> <resource> <targetPath>/ROOT</targetPath> <!--用于指定需要复制的根目录,${project.build.directory}表示target目录--> <directory>${project.build.directory} </directory> <!--用于指定需要复制的文件。${project.build.finalName}.jar指的是打包后的jar包文件。--> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> <!--当执行mvnpackage时,执行:mvncleanpackagedocker:build--> <executions> <execution> <id>build-image</id> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> </plugin>
打包项目
使用maven打包即可
镜像生成完毕!!!
我们可以通过docker面板管理镜像
看镜像里多了一个
右键使用镜像创建容器,设置容器名称,端口映射,目录挂载等
run之后就可以启动通过该镜像创建的容器
我们这里用的是docker原生的插件,当然可以用阿里的插件【Alibaba Cloud Toolkit】,也挺好用的。
好了,为了帮助大家更好的理解docker,写了这篇文章,结束了!好玩吧~