Ideal 中将spring boot 项目部署到Docker
docker 开启远程部署
CentOS7开启docker远程访问并在idea中连接使用
1、编辑/usr/lib/systemd/system/docker.service,配置远程访问。主要是在[Service]这个部分,添加下列参数:
vim /usr/lib/systemd/system/docker.service
2、添加下列这句话:
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock \
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
3、重启
systemctl daemon-reload
systemctl restart docker
开放防火墙端口
我这里使用的是virtual box 搭建的虚拟机,所以需要开放端口,如果是windows 自带的hyper-v 就不需要处理了
添加端口
常用的firewall 命令参见:常用firewall命令
firewall-cmd --zone=public --add-port=2375/tcp --permanent
firewall-cmd --reload
systemctl restart firewalld
ideal 添加docker 环境
#这里是刚刚设置的虚拟机
tcp://192.168.199.214:2375
项目配置
由于这里使用的ideal 是2020版本,所以里面已经自带了docker 插件。如果是其他版本请自行安装docker 插件
Dockerfile
dockerfile 是构建image 的配置文件,如果不熟悉docker的朋友可以自行了解一下:Docker入门
#指定基础镜像,在其上进行定制
FROM java:8
#维护者信息
MAINTAINER gzwen <gzwen@163.com>
#这里的 /tmp 目录就会在运行时自动挂载为匿名卷,任何向 /tmp 中写入的信息都不会记录进容器存储层
VOLUME /tmp
#复制上下文目录下的target/demo-1.0.0.jar 到容器里
COPY target/spring-cloud-docker-demo-1.0-SNAPSHOT.jar docker-demo-1.0.0.jar
#bash方式执行,使docker-demo-1.0.0.jar可访问
#RUN新建立一层,在其上执行这些命令,执行结束后, commit 这一层的修改,构成新的镜像。
RUN bash -c "touch /docker-demo-1.0.0.jar"
#声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 8080
#指定容器启动程序及参数 <ENTRYPOINT> "<CMD>"
ENTRYPOINT ["java","-jar","docker-demo-1.0.0.jar"]
构建image
想要打包成image 有如下两种方式
- 通过dockerfile 与idea docker插件结合使用本例中使用
- 检索
spring-boot-maven-plugin
插件,这种可以在生产环境通过maven 命令就可以完成,详见:docker与Spring boot的集成:docker-maven-plugin使用
pom.xml
<!-- 将spring boot 项目打包成jar 包含依赖与配置文件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory></dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
Ideal (run/debug configurations)
设置docker 命令相关参数
这里设置的命令与参数最终都会发送到 tcp://192.168.199.214:2379
docker 服务器中运行
点击运行后可以看到
构建过程
应用运行日志
项目地址
- https://gitee.com/97wx/example/tree/master/example-spring-cloud/spring-cloud-docker-demo
关于我
- 关注不迷路,点赞走一波~ 转载请标注~
- 公众号