IDEA中springboot项目中连接docker
编辑命令:vim /usr/lib/systemd/system/docker.service。(可选)查看端口:用于检查服务器上是否开放了监听端口 2375,并查看与之相关的网络连接状态。查看docker 版本:docker --version。最后在项目中编写dockerfile文件,最后打包运行即可!先查看docker的配置文件:docker.service。2、修改docker 配置,关闭
具体内容如下:
1、在Linux中安装docker
使用安装命令:
apt-get install docker.io
还有一个是更新软件并安装docker:
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
运行docker
systemctl start docker
开机启动docker
systemctl enable docker
查看docker 版本:docker --version
2、修改docker 配置,关闭防火墙,放行端口
关闭防火墙
#查看防火墙状态 systemctl status firewalld
# 暂停防火墙 systemctl stop firewalld# 启动防火墙 systemctl start firewalld
或者放行端口:2375
firewall-cmd --zone=public --add-port=2375/tcp --permanent
先查看docker的配置文件:docker.service
cat /usr/lib/systemd/system/docker.service
然后修改这个配置,如下图所示,在ExecStart后添加内容:
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
编辑命令:vim /usr/lib/systemd/system/docker.service

键盘按ESC 然后输入 【:wq】保存退出即可!
(可选)查看端口:用于检查服务器上是否开放了监听端口 2375,并查看与之相关的网络连接状态
ss -tuln | grep 2375
ss: 是一个用于显示套接字统计信息的工具,类似于netstat,但通常更快且更高效。-t: 表示只显示 TCP 协议的相关信息。-u: 表示只显示 UDP 协议的相关信息。-l: 表示只显示处于监听状态的套接字。-n: 表示不进行 DNS 解析,直接显示 IP 地址和端口号。grep 2375: 这是一个过滤器命令,用于从ss的输出中筛选出包含端口号 2375 的行。
3、重启docker
systemctl daemon-reload && systemctl restart docker
或
systemctl daemon-reload
systemctl restart docker
4、在IDEA中进行操作
①先给IDEA安装docker插件

安装之后添加docker操作:具体如下图所示




然后IDEA就可以连接到docker里面了!

最后在项目中编写dockerfile文件,示例dockerfile文件内容:
目前需求是需要含有GDAL 3.8.5的JDK,目前是有GDAL3.8.5的镜像,和JDK17的安装包,所以需要把两部分都编译到容器中,所以内容如下的:
# 基础镜像
FROM gdal-3.8.5:1.0
# 设置维护者信息
LABEL maintainer="ATB <ATB@ATB.com>" \
version="1.0" \
description="Docker image for ev-admin Spring Boot application"
# 创建必要目录(logs、文件目录等)
RUN mkdir -p /home/software/appServer/logs \
/home/software/appServer/temp \
/home/software/appServer/uploadPath \
/usr/local/java \
/home/software/appServer/skywalking/agent
# jdk-17
COPY bellsoft-jdk17.0.15_10-linux-amd64-full.tar.gz /home/software/appServer/
# 设置工作目录
WORKDIR /home/software/appServer
# 解压压缩包到目标目录
RUN tar -xzvf /home/software/appServer/bellsoft-jdk17.0.15_10-linux-amd64-full.tar.gz -C /usr/local/java && \
rm /home/software/appServer/bellsoft-jdk17.0.15_10-linux-amd64-full.tar.gz
# 拷贝 Spring Boot jar 包和 config 配置(可选)
COPY ./target/atb-admin.jar ./atb-admin.jar
# COPY ./jar/config ./config
# 设置环境变量
ENV JAVA_HOME=/usr/local/java/jdk-17.0.15-full
ENV PATH=$PATH:$JAVA_HOME/bin
ENV CLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/share/java
ENV SERVER_PORT=8082
# 暴露端口
EXPOSE ${SERVER_PORT}
# 启动应用
ENTRYPOINT ["java","-jar","atb-admin.jar"]
若是已经有包含GDAL的JDK,则dockerfile内容如下:
# 基础镜像选择
FROM gdal-jdk17:3.8.5
# 设置维护者信息
LABEL maintainer="ATB <ATB@ATB.com>" \
version="1.0" \
description="Docker image for ev-admin Spring Boot application"
# 创建必要目录(logs、文件目录等)
RUN mkdir -p /home/software/appServer/logs \
/home/software/appServer/temp \
/home/software/appServer/uploadPath \
/home/software/appServer/skywalking/agent
# 设置工作目录
WORKDIR /home/software/appServer
# 拷贝 Spring Boot jar 包和 config 配置(可选)
COPY ./jar/atb-admin.jar ./atb-admin.jar
# COPY ./jar/config ./config
# 目录持久化挂载点
VOLUME ["/home/software/appServer/logs", \
"/home/software/appServer/temp", \
"/home/software/appServer/uploadPath"]
# 设置环境变量
ENV SERVER_PORT=8082
# 暴露端口
EXPOSE ${SERVER_PORT}
# 设置启动命令
ENTRYPOINT ["java", \
"-Djava.security.egd=file:/dev/./urandom", \
"-Dserver.port=${SERVER_PORT}", \
# 应用名称 如果想区分集群节点监控 改成不同的名称即可
# "-Dskywalking.agent.service_name=ruoyi-server", \
# "-javaagent:/ruoyi/skywalking/agent/skywalking-agent.jar", \
"-jar", "atb-admin.jar"]
把dockerfile编写完成后,在idea中添加Windows的docker工具,如下所示,可以下载最新的docker
Index of win/static/stable/x86_64/

下载解压后,然后在idea中,配置一下 ,如下图所示:

然后在idea中运行前编译一些配置

最后打包运行即可!然后容器的启动、停止、idea都可以进行操作了!
其他内容:在根目录的pom文件中添加如下内容
<plugin>
<!--安装docker插件-->
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<!--远程连接地址-->
<dockerHost>http://192.168.1.88:2375</dockerHost>
<!--镜像名称-->
<imageName>atb/${project.artifactId}</imageName>
<!--dockerfile的位置-->
<dockerDirectory>${project.basedir}/atb-admin</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<!--jar 包所在的路径 此处配置的 即对应 target 目录-->
<directory>${project.basedir}/atb-admin/target</directory>
<!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
<include>atb-admin.jar</include>
</resource>
</resources>
</configuration>
</plugin>
编译命令:
docker build -t atb-serverapp:1.0 .
启动命令:
docker run -d --name atb-serverapp \
-p 8082:8082 \
-v /home/software/appServer/logs:/home/software/appServer/logs \
-v /home/software/appServer/temp:/home/software/appServer/temp \
-v /home/software/appServer/uploadPath:/home/software/appServer/uploadPath \
atb-serverapp:1.0更多推荐

所有评论(0)