Docker(二)-Docker化-构建Springboot的镜像

原创 2017年01月03日 12:16:07

Docker化-构建Springboot的镜像

准备SpringBoot项目

Dockerfile常用命令

  • FROM — 指定基础镜像
FROM <image>
FROM <image>:<tag>
FROM <image>@<digest>
  • MAINTAINER — 指定作者
MAINTAINER <author>
  • RUN — 运行指定的命令
RUN cmd arg1 arg2 --- 以/bin/sh -c cmd 方式运行命令(shell)
RUN ["cmd", "arg1", "arg2"] --- 直接运行命令(exec)
  • CMD — 容器启动时要运行的命令,可显式指定命令覆盖,只能使用一次
CMD ["cmd", "arg1", "arg2"] (exec)
CMD cmd arg1 arg2 (shell)
CMD ["arg1", "arg2"] --- 做为ENTRYPOINT的参数运行,需配合ENTRYPOINT使用
  • ENTRYPOINT —启动时的默认命令,如设置,则CMD为其参数
ENTRYPOINT ["cmd", "arg1", "arg2"] (exec)
ENTRYPOINT cmd arg1 arg2 (shell)
  • VOLUME — 向容器添加卷
VOLUME ["dir1", "dir2",...]
VOLUME dir1 dir2 ...
  • ADD — 复制文件到镜像中
ADD &ltsrc> ... <dest>
ADD ["<src>", ... "<dest>"]
  • COPY — 复制文件到镜像中
COPY <src> ... <dest>
COPY ["<src>", ... "<dest>"]
  • USER — 指定用户
USER username:group
USER uid:gid
  • WORKDIR — 指定工作目录
WOKRDIR dir
  • EXPOSE — 暴露接口给外部
EXPOSE <port> [<port>...]
  • LABEL — 为镜像指定标签
LABEL <key>=<value> <key>=<value> <key>=<value> ...
  • ENV — 设置环境变量
ENV <key> <value>
ENV <key>=<value>... --- 可以一次指定多个变量
  • ONBUILD — 添加触发器
ONBUILD [instruction]

SpringBoot的Dockerfile

  • Dockerfile
  #指定springboot需要的基础镜像
  FROM maven:3.3.3
  #复制pom文件到maven
  ADD pom.xml /tmp/build/
  #运行指定命令
  RUN cd /tmp/build && mvn -q dependency:resolve
  #复制项目文件
  ADD src /tmp/build/src
          #构建应用
  RUN cd /tmp/build && mvn -q -DskipTests=true package \
          #拷贝编译结果到指定目录
          && mv target/*.jar /app.jar \
          #清理编译痕迹
          && cd / && rm -rf /tmp/build

  VOLUME /tmp
  EXPOSE 8080
  ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

构建Docker镜像

  • 进入应用根目录,构建Docker镜像
docker build -t [项目名]
  • 从镜像启动容器
docker run -d -p 8080:8080
  • 访问
curl http://127.0.0.1:8080

项目地址

Docker构建SpringBoot镜像

一、使用STS构建springBoot项目项目结构├─src │ ├─main │ │ ├─java │ │ │ └─com │ │ │ └─example │ │ └─...

springboot打包docker镜像部署

springboot打包docker镜像部署 环境准备 机器 vultr一台,centos7 资源下载 jdk8 mave...
  • ujjdtb
  • ujjdtb
  • 2017年02月22日 10:48
  • 188

Docker搭建disconf环境,三部曲之二:本地快速构建disconf镜像

在本地构建镜像,把disconf环境运行起来

docker(二):构建镜像

Dockerfile 容器volume 容器连接

SpringBoot,SpringCloud,Docker构建微服务学习笔记

SpringCloud与阿里巴巴的dubbo都是实现微服务架构的基础框架,由与我在学习的时候是提供SpringBoot来尝试构建微服务,因此我使用了SpringCloud。 SpringCloud的...
  • canot
  • canot
  • 2017年03月17日 19:29
  • 2160

基于jenkins构建应用的docker镜像做持续集成和部署

为了做持续的集成和部署,引入了jenkins,利用jenkins来构建应用的docker镜像并push到私有仓库,然后再基于应用的docker镜像来发布项目,这样减少了很多的手动操作,基本能实现持续集...
  • JThink_
  • JThink_
  • 2017年04月27日 10:11
  • 3598

docker筑基篇-04-使用Dockerfile构建自己的镜像

构建自己的镜像 1 构建Dockerfile上下文 2 Dockerfile文件内容 3 构建镜像 4 启动容器 构建过程中的几个问题 1 Dockerfile大致流程 2 缓存上一篇文章介绍了使用d...
  • hylexus
  • hylexus
  • 2016年10月18日 23:54
  • 2584

Docker多步构建更小的Java镜像

最新版Docker将支持多步构建(Multi-stage build),这样使用单个Dockerfile就可以定义多个中间镜像用于构建,测试以及发布等多个步骤,并且有效减小最终镜像的大小。 原文: C...

Docker学习笔记——构建镜像

Docker有两种构建镜像的方式: 使用docker commit命令; 使用Dockerfile文件;
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Docker(二)-Docker化-构建Springboot的镜像
举报原因:
原因补充:

(最多只允许输入30个字)