掌握docker部署Spring boot项目演示
前言:
下面将介绍两种方式进行部署项目,前提需要先按照docker,然后进入配置文件修改。
修改docker配置
vim /usr/lib/systemd/system/docker.service
添加这一行
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
//重新加载 systemd 系统和服务管理器的配置
systemctl daemon-reload
//重启docker
systemctl restart docker.service
一:方式一
-
1.docker插件
pom.xml文件引入docker插件
<!-- Docker maven plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<!-- 镜像名称 -->
<imageName>${project.artifactId}</imageName>
<!-- 远程机器外网ip,docker开启2375端口 -->
<dockerHost>http://192.168.160.128:2375</dockerHost>
<!-- Dockerfile位置 -->
<dockerDirectory>${project.basedir}</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<!-- Docker maven plugin -->
2.Dockerfile文件
#基础镜像
FROM anapsix/alpine-java:8_server-jre_unlimited
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ENV SERVER_PORT=8001
ENV MYPATH /usr/local
WORKDIR $MYPATH
ADD ./target/docker-demo.jar ./app.jar
ENTRYPOINT ["java", \
"-Djava.security.egd=file:/dev/./urandom", \
"-Dserver.port=${SERVER_PORT}", \
"-jar", "app.jar"]
3.执行docker:build:
-
构建镜像:
-
构建成功:
-
查看镜像 (服务器)
4.构建容器并访问测试
-
构建容器
docker run -d --name docker-demo -p 8001:8001 docker-demo:v0.0.2
#解释
-d :后台运行
--name :容器名称
-p :端口绑定(虚拟器与容器中端口)
docker-demo:v0.0.2 :镜像名称(或者镜像id)
-
启动完成
-
controller代码
@RestController
public class TestController {
@GetMapping("/test")
public String test() {
return "docker 部署 spring boot 项目测试";
}
}
-
访问地址
http://192.168.160.128:8001/test
二:方式二
1.利用IDEA docker插件
2.配置
-
第一步
-
第二步
配置docker服务:
tcp://192.168.160.128:2375
成功标识:
配置文件 :
指定当前项目dockerfile文件
配置镜像,容器,端口
3.启动
这一步操作构建镜像,创建容器,启动容器,都已经帮我们执行了,一波流带走。
4.测试
-
访问地址
http://192.168.160.128:8001/test
三:查看docker详情
idea这里非常方便,可以看到镜像,容器,以及可以对镜像,容器进行删除重启关闭操作。还能看到容器的详情,应用日志等等信息。
小结:
本人推荐使用第二种方式,非常的丝滑就一波流构建镜像,创建容器,启动容器操作;后期只需要改一下镜像版本号,点击一下完事。