Docker容器入门之一:部署SpringBoot项目
一、环境准备:
1、vm虚拟机: Workstation 12 Pro 12.5.7 build-5813279
2、Centos 7
在虚拟机上安装好Centos7系统后,就可以开始准备安装Docker了。由于不想每次都敲sudo去获取权限什么的,本人直接是使用root账号登录的。下面开始正文。
二、Docker安装和配置
1、安装方式一:
[root@localhost ~]# yum install docker
2、安装方式二:
[root@localhost ~]# curl -fsSL https://get.docker.com/|sh
上面两种方法都可以进行安装,只不过方式二的版本会更加新。接下来等待安装完成。
3、检查是否安装成功:
[root@localhost ~]# docker version
成功后会输出以下信息(Client有信息即可):
4、启动Docker服务并设置开机启动:
1 2 | [root @localhost ~]# systemctl start docker [root @localhost ~]# systemctl enable docker |
5、配置下国内镜像服务(不是必须):
vim /etc/docker/daemon.json { "registry-mirrors": ["https://aj2rgad5.mirror.aliyuncs.com"] }
Ps: 这里格式一定要正确,标准的json格式,不然服务不能启动!!!
6、配置远程连接(后续要用):
vim /usr/lib/systemd/system/docker.service
找到文中如下行:
ExecStart=/usr/bin/dockerd
将其修改为:
ExecStart=/usr/bin/dockerd -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock
127.0.0.1修改为当前虚拟机内的Ip既可。如果是阿里云的话要写系统自己的ip,外网ip不好使
注:配置生效后可用:curl 127.0.0.1:2375测试是否成功。
成功会显示:
7、重启服务使配置生效:
[root@localhost ~]# systemctl deamon-reload
[root@localhost ~]# systemctl restart docker.service
到此为止Docker的部分基本已经完成!恭喜!恭喜!(Ps:我刚开始的时候怎么就这么不顺利呢orz!)
三、SpringBoot项目的容器化
1、通过Spring Initializr快速建立一个SpringBoot项目,然后简单写一个控制器:
然后在POM里加入Docker的插件:
<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> <configuration> <imageName>spring/${project.artifactId}</imageName> <dockerDirectory>src/main/docker</dockerDirectory> <dockerHost>http://127.0.0.1:2375</dockerHost> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin>
这里注意两个标签:
<imageName>:这个是镜像的名称,上述的镜像名称就是: spring/docekertest
<docherHost>:这个是容器服务的IP地址,就是虚拟机上的IP,请务必替换掉!
二:编写Dockerfile:
创建文件,结构如下:
内容如下:
FROM java VOLUME /tmp ADD dockertest-0.0.1-SNAPSHOT.jar app.jar RUN bash -c 'touch /app.jar' ENV JAVA_OPTS="" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
先启动项目测试下: OK!
然后就是打包了: 先package 生成jar包 再 docker:build 等待完成。
成功信息:
到此这个项目已经变成镜像了,可以使用容器去启动了。
四、启动容器
让我们切回虚拟机,打开终端,输入如下命令:
[root@localhost ~]# docker run -p 8080:8080 -t spring/dockertest
出现熟悉的Springboot启动Banner 成功!
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.13.RELEASE)
这时候切回Windows打开浏览器输入 Docker的服务IP:8080就可以访问项目了!
大功告成!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理