docker部署springboot项目
2019独角兽企业重金招聘Python工程师标准>>>
安装docker
菜鸟教程
springboot项目
maven依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>boottest</groupId><artifactId>com.ityang.boot</artifactId><version>1.0-SNAPSHOT</version><name>boottest</name><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.3.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><properties><java.version>1.8</java.version></properties><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
启动和rest服务类
@SpringBootApplication
@RestController
public class StartApp {public static void main(String[] args) {SpringApplication.run(StartApp.class, args);}@RequestMapping("/")public String index() {return "hello spring boot";}
}
启动项目,浏览器访问 localhost:8080
编写Dockerfile
在项目 /src/main
目录下新建目录docker,在/src/main/docker
下新建文件 Dockerfile,内容为:
# 基础镜像 这里使用国内网易镜像
FROM hub.c.163.com/dwyane/openjdk:8
#挂载宿主/tmp目录到容器的/tmp目录
VOLUME /tmp
# 拷贝文件(maven打包后的jar文件),并重命名为 app.jar
ADD com.ityang.boot-1.0-SNAPSHOT.jar app.jar
# 启动容器后执行一些命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
项目添加docker-maven-plugin插件
<!-- Docker maven plugin start --><plugin><groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId><version>0.4.13</version><configuration><!--[a-z 0-9] 不然docker:build会报错--><imageName>dockerspringboot</imageName>
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory><resources><resource><targetPath>/</targetPath><directory>${project.build.directory}</directory><include>${project.build.finalName}.jar</include></resource></resources></configuration></plugin><!-- Docker maven plugin end -->
需要注意的是,镜像名称必须为 a-z(小写)和0-9 的值,否则docker:build 报错
构建镜像文件
执行命令:
$ mvn clean package docker:build
或者分开执行:
$ mvn clean package
$ mvn docker:build
部分控制台信息:
[INFO] --- docker-maven-plugin:0.4.13:build (default-cli) @ com.ityang.boot ---
[INFO] Copying /Users/yangzhenlong/projs/my/boot-test/target/com.ityang.boot-1.0-SNAPSHOT.jar -> /Users/yangzhenlong/projs/my/boot-test/target/docker/com.ityang.boot-1.0-SNAPSHOT.jar
[INFO] Copying /Users/yangzhenlong/projs/my/boot-test/src/main/docker/Dockerfile -> /Users/yangzhenlong/projs/my/boot-test/target/docker/Dockerfile
[INFO] Building image dockerspringboot
Step 1/4 : FROM hub.c.163.com/dwyane/openjdk:8---> 96cddf5ae9f1
Step 2/4 : VOLUME /tmp---> Running in 0dab3c046923
Removing intermediate container 0dab3c046923---> 2e62fad6a16a
Step 3/4 : ADD com.ityang.boot-1.0-SNAPSHOT.jar app.jar---> a966ed4c8748
Step 4/4 : ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]---> Running in 4ec1c4990022
Removing intermediate container 4ec1c4990022---> 02b677ad12e1
ProgressMessage{id=null, status=null, stream=null, error=null, progress=null, progressDetail=null}
Successfully built 02b677ad12e1
Successfully tagged dockerspringboot:latest
[INFO] Built dockerspringboot
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.475 s
[INFO] Finished at: 2018-11-17T01:24:57+08:00
[INFO] ------------------------------------------------------------------------
通过docker镜像启动容器
查看镜像
$ docker images
REPOSITORY | TAG | IMAGE ID | CREATED | SIZE |
---|---|---|---|---|
dockerspringboot | latest | 02b677ad12e1 | 8 seconds ago | 657MB |
启动容器
$ docker run -p 8080:8080 -d dockerspringboot
cbc89f9e0cd584f1405d7177098423f5b576d668f7aee6ff7dfb5b4e34154862
解释:
-p 8080:8080 #容器端口映射到宿主端口,格式为:主机(宿主)端口:容器端口
-d #后台运行容器,并返回容器ID
查看运行的容器
$ docker ps
CONTAINER ID | IMAGE | COMMAND | CREATED | STATUS | PORTS | NAMES |
---|---|---|---|---|---|---|
cbc89f9e0cd5 | dockerspringboot | "java -Djava.securit…" | 58 seconds ago | Up 58 seconds | 0.0.0.0:8001->8001/tcp | frosty_lichterman |
浏览器访问 loalhost:8080
转载于:https://my.oschina.net/yimingkeji/blog/2877495
docker部署springboot项目相关推荐
- Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo
Docker 部署SpringBoot项目整合 Redis 镜像做访问计数Demo 最终效果如下 大概就几个步骤 1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4. ...
- Docker 部署SpringBoot项目不香吗?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:流星007 链接:toutiao.com/i68433912 ...
- 又到了上云时刻啦!!!阿里云 Docker部署SpringBoot项目 方便测试的部署方式
又到了上云时刻啦!!!阿里云 Docker部署SpringBoot项目 方便测试的部署方式 部署思路: 具体步骤: 1.打成jar 2.上传到服务器 3.启动JDK容器 4.进入JDK 容器 启动 项 ...
- 使用Docker部署SpringBoot项目(避坑+超级详细版本)
使用Docker部署SpringBoot项目(避坑+超级详细版本) 首先呢,非常感谢我们一起相遇在这个地方,想必此刻的你也是在一个学习求知的过程,我们一样,我们都是在求知的路上匍匐前进!看到这篇文章, ...
- docker 挂载目录_完美解决:Docker部署SpringBoot项目后图片无法访问和上传,3招搞定!...
以前使用FTP在Linux中使用java -jar xxx.jar部署SpringBoot项目时,由于在项目中指定了主机文件存放路径映射,可以直接访问服务器的文件. 但是最近入坑Docker,将Spr ...
- 使用IDEA集成docker部署springboot项目及bug解决并连同redis、MySQL
流程介绍 安装docker(windows) 配置docker源加速 docker安装redis IDEA集成docker # IDEA连接docker 配置springboot项目 打包成docke ...
- 史上最全阿里云服务器上Docker部署Springboot项目 实战 每一步都带详细图解!!!
在学习编程的时候,我们都会想,该怎么把自己写出来的项目和创意分享给大家勒.直接给代码吗?平常人看不懂,环境还需要一大堆. 那么部署到服务器上,让人能够直接访问,我想这应该是最棒的方式了吧. 使用Doc ...
- 就几条命令,一键学会Docker部署SpringBoot项目
今天,我们使用docker的安装方式,来安装一下我们的项目,实验环境是centos 7系统上,本实验适用部署大部分Springboot项目.文末有40分钟的视频教学哈! eblog项目地址: http ...
- Jenkins+Pipeline+Docker部署SpringBoot项目到远程服务器
Jenkins部署 前言 Jenkins 安装 nginx配置 jenkins配置 Docker安装 项目部署 项目添加Dockerfile文件 Jenkins新建任务 使用Pipeline部署 结果 ...
- 服务器Docker部署springboot项目
前言:之前项目重来没有用到过Docker部署,最近的一个项目需要,从头开始整一遍Docker,记录一下所踩的坑. 1.开防火墙 腾讯云服务器,买来没开防火墙,不知道要不要紧索性就开起来吧 # 查看防火 ...
最新文章
- 反arp攻击软件_谈谈电子欺骗中的ARP欺骗
- 关于字符串计算size的方法比较
- dom操作表格示例(dom创建表格)
- Linux Server - NAT
- c++ fstream用得多不?_自动挡中的“手自一体”,其实很好用,但真正会用的不多...
- delphi 2010 调整图片的比例
- rpm oracle 离线,在CentOS中离线安装Oracle之安装准备
- spring 注释_Spring @Value注释
- python哪些类型可以作为迭代器_python0.8-----set类型与迭代器
- 【mysql基础知识】数据库中新建触发器,监控数据变化
- java冒泡排序经典代码_15道经典Java算法题(含代码) 建议收藏
- Day 4 列表,元组,range
- shark学习(1)【原创】
- 《算法设计与分析》王红梅 第二版部分习题
- CAM350 V14.5安装记录
- apdu 移动sim_SIM之APDU指令格式 | 学步园
- 微信语音对方无法听到声音解决办法
- 移动Web开发字体格式选择(附.woff\.woff2 兼容性)
- syn 攻击脚本 python_Python Scapy实现SYN Flood攻击
- 关于双硬盘安装双系统