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项目相关推荐

  1. Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo

    Docker 部署SpringBoot项目整合 Redis 镜像做访问计数Demo 最终效果如下 大概就几个步骤 1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4. ...

  2. Docker 部署SpringBoot项目不香吗?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:流星007 链接:toutiao.com/i68433912 ...

  3. 又到了上云时刻啦!!!阿里云 Docker部署SpringBoot项目 方便测试的部署方式

    又到了上云时刻啦!!!阿里云 Docker部署SpringBoot项目 方便测试的部署方式 部署思路: 具体步骤: 1.打成jar 2.上传到服务器 3.启动JDK容器 4.进入JDK 容器 启动 项 ...

  4. 使用Docker部署SpringBoot项目(避坑+超级详细版本)

    使用Docker部署SpringBoot项目(避坑+超级详细版本) 首先呢,非常感谢我们一起相遇在这个地方,想必此刻的你也是在一个学习求知的过程,我们一样,我们都是在求知的路上匍匐前进!看到这篇文章, ...

  5. docker 挂载目录_完美解决:Docker部署SpringBoot项目后图片无法访问和上传,3招搞定!...

    以前使用FTP在Linux中使用java -jar xxx.jar部署SpringBoot项目时,由于在项目中指定了主机文件存放路径映射,可以直接访问服务器的文件. 但是最近入坑Docker,将Spr ...

  6. 使用IDEA集成docker部署springboot项目及bug解决并连同redis、MySQL

    流程介绍 安装docker(windows) 配置docker源加速 docker安装redis IDEA集成docker # IDEA连接docker 配置springboot项目 打包成docke ...

  7. 史上最全阿里云服务器上Docker部署Springboot项目 实战 每一步都带详细图解!!!

    在学习编程的时候,我们都会想,该怎么把自己写出来的项目和创意分享给大家勒.直接给代码吗?平常人看不懂,环境还需要一大堆. 那么部署到服务器上,让人能够直接访问,我想这应该是最棒的方式了吧. 使用Doc ...

  8. 就几条命令,一键学会Docker部署SpringBoot项目

    今天,我们使用docker的安装方式,来安装一下我们的项目,实验环境是centos 7系统上,本实验适用部署大部分Springboot项目.文末有40分钟的视频教学哈! eblog项目地址: http ...

  9. Jenkins+Pipeline+Docker部署SpringBoot项目到远程服务器

    Jenkins部署 前言 Jenkins 安装 nginx配置 jenkins配置 Docker安装 项目部署 项目添加Dockerfile文件 Jenkins新建任务 使用Pipeline部署 结果 ...

  10. 服务器Docker部署springboot项目

    前言:之前项目重来没有用到过Docker部署,最近的一个项目需要,从头开始整一遍Docker,记录一下所踩的坑. 1.开防火墙 腾讯云服务器,买来没开防火墙,不知道要不要紧索性就开起来吧 # 查看防火 ...

最新文章

  1. 反arp攻击软件_谈谈电子欺骗中的ARP欺骗
  2. 关于字符串计算size的方法比较
  3. dom操作表格示例(dom创建表格)
  4. Linux Server - NAT
  5. c++ fstream用得多不?_自动挡中的“手自一体”,其实很好用,但真正会用的不多...
  6. delphi 2010 调整图片的比例
  7. rpm oracle 离线,在CentOS中离线安装Oracle之安装准备
  8. spring 注释_Spring @Value注释
  9. python哪些类型可以作为迭代器_python0.8-----set类型与迭代器
  10. 【mysql基础知识】数据库中新建触发器,监控数据变化
  11. java冒泡排序经典代码_15道经典Java算法题(含代码) 建议收藏
  12. Day 4 列表,元组,range
  13. shark学习(1)【原创】
  14. 《算法设计与分析》王红梅 第二版部分习题
  15. CAM350 V14.5安装记录
  16. apdu 移动sim_SIM之APDU指令格式 | 学步园
  17. 微信语音对方无法听到声音解决办法
  18. 移动Web开发字体格式选择(附.woff\.woff2 兼容性)
  19. syn 攻击脚本 python_Python Scapy实现SYN Flood攻击
  20. 关于双硬盘安装双系统

热门文章

  1. Access键盘快捷键大全(一)
  2. webapp(WebRoot)目录下的jsp访问不了webapp目录的css文件的问题解决
  3. Python实现求二阶行列式
  4. MT6573添加新硬件模块驱动方法
  5. Unity Editor编辑器实用扩展
  6. 二维码是什么?java生成二维码
  7. centos杀毒软件clamav安装
  8. JPG如何免费压缩大小并且保证清晰度
  9. @loj - 2339@ 「WC2018」通道
  10. 【C语言】【MPI】MPI编程入门详解