想必大家都经历过手动上传文件到服务器上,然后手动解压等等一系列累人又无脑的操作,所以本次将在IDEA上整合docker,实现一键部署微服务项目,让你远离烦恼。
如果大家看了我前面的〖Docker指南〗系列,服务器里一定安装了docker,并且对docker的相关知识以及操作都了如指掌了。
那么接下来,所需要的就是一个微服务项目,小伙伴们可以自己搭建,也可以用我的。
配置步骤
配置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,写了这篇文章,结束了!好玩吧~
等等~彩蛋呢???
早上起来发现中了病毒🦠,我丢!!!
赶紧关了服务~上班~
哼~
我正在参与掘金技术社区创作者签约计划招募活动,点击链接报名投稿。