十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
SpringBoot中如何使用Docker容器,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
从策划到设计制作,每一步都追求做到细腻,制作可持续发展的企业网站。为客户提供成都做网站、网站设计、外贸营销网站建设、网站策划、网页设计、域名申请、网页空间、网络营销、VI设计、 网站改版、漏洞修补等服务。为客户提供更好的一站式互联网解决方案,以客户的口碑塑造优易品牌,携手广大客户,共同发展进步。
项目搭建
首先打开Idea,选择初始化一个Spring Boot应用,然后一路回车下去,待Idea下载完依赖,开始编码
这里写一个简单的接口:
@RestController @SpringBootApplication public class DemoApplication { @GetMapping("/hello") public String hello() { return "Hello World"; } public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
然后运行下面的命令验证服务是否正常:
mvn clean package -Dmaven.test.skip=true java -jar target/demo-0.0.1-SNAPSHOT.jar
容器化
下面我们就开始容器化这个简单的Spring Boot应用
创建Dockerfile文件
首先在项目的根目录创建一个Dockerfile文件,主要不要搞成驼峰命名:
From java:8 VOLUME /tmp #将打包好后的Jar文件放到image中 Add target/demo-0.0.1-SNAPSHOT.jar app.jar # change file access and modification times RUN bash -c 'touch /app.jar' EXPOSE 8080 #容器启动的时候运行Jar文件 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
构建镜像
接下来就去构建Docker镜像,不过通常这一步都会用Jenkins的去做:
docker build -t demo8 .
如果看到下面的输出说明执行成功了:
Sending build context to Docker daemon 14.84MB Step 1/6 : FROM java:8 ---> d23bdf5b1b1b Step 2/6 : VOLUME /tmp ---> Using cache ---> 91086d8b7c77 Step 3/6 : ADD target/demo-0.0.1-SNAPSHOT.jar app.jar ---> d161bed06e8b Step 4/6 : RUN bash -c 'touch /app.jar' ---> Running in 9fbaff628989 ---> 1fc0498bbb06 Removing intermediate container 9fbaff628989 Step 5/6 : EXPOSE 8080 ---> Running in a5c44244b267 ---> 3b5150c5bdd0 Removing intermediate container a5c44244b267 Step 6/6 : ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar ---> Running in b7a3baac9d47 ---> 23ef7cc5e1b0 Removing intermediate container b7a3baac9d47 Successfully built 23ef7cc5e1b0 Successfully tagged demo8:latest
运行镜像
到这一步构建完成后,我们就顺利的开始运行:
docker run -d -p 4000:8080 demo8
然后curl一下刚才的接口看看是否正常:
± % curl localhost:4000/hello Hello World%
我们看到这里是将4000端口映射到了容器中的8080端口,我们进入容器看一下验证一下:
± % docker ps !10172 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5f1b7f29a0b6 988ed6f466b5 "java -Djava.secur..." 29 minutes ago Up 29 minutes 0.0.0.0:4000->8080/tcp practical_jones ± % docker exec -it 5f1b7f29a0b6 /bin/bash root@5f1b7f29a0b6:/ curl localhost:8080/hello Hello World
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。