05Dockerfile

    本文主要介绍下Dockerfile的基本用法和写法
  1. 自定义镜像

Dockerfile,就是一个文本文件,其中包含一个个的指令,用指令来说明要执行什么操作来构建镜像

指令

说明

示例

FROM

指定基础镜像

FROM centos:7

MAINTAINER

维护者信息

MAINTAINER docker_user maoge

ENV

设置环境变量,可在后面指令使用

ENV key value

ADD

复制指定src容器destsrc可以Dockerfile所在目录一个相对路径也可以一个url可以tar文件(自动解压为目录)

ADD ./test.tar /test

COPY

拷贝本地文件到镜像的指定目录

COPY ./jre11.tar.gz /tmp

VOLUME

创建一个可以本地其他容器挂载挂载点

VOLUM "[/data"]

USER

指定容器运行用户名或者UID

USER daemon

WORKDIR

后续RUNCMDENTRYPOINT指令配置工作目录

WORKDIR /path/to/workdir

ONBUILD

配置创建镜像作为其他镜像基础镜像执行操作命令

[...]

ONBUILD ADD . /app/src

RUN

执行linux的shell命令,一般是安装过程的命令

RUN tar -xzvf /tmp/jre11.tar.gz && EXPORTS path=/tmp/jre11:$path

EXPOSE

指定容器运行时监听的端口,是给镜像使用者看的

EXPOSE 8080

ENTRYPOINT

镜像中应用的启动命令,容器运行时调用

ENTRYPOINT java -jar xxx.jar

2、案例1

==============

# 指定基础镜像

FROM centos:7

#维护者信息

MAINTAINER docker_user maoge

# 配置环境变量,jdk的安装目录

ENV TZ=Aisa/Shanghai

ENV JAVA_DIR=/usr/local

# 拷贝jdk和java项目的包

COPY ./jdk8.tar.gz $JAVA_DIR

COPY ./docker-demo.jar /tmp/app.jar

# 安装jdk

RUN cd $JAVA_DIR \ && tar -xf ./jdk8.tar.gz && mv ./jdk1.8.0_144 ./java8

# 配置环境变量

ENV JAVA_HOME=$JAVA_DIR/java8

ENV PATH=$PATH:$JAVA_HOME/bin

# 入口,java项目的启动命令

ENTRYPOINT ["java","-jar","/app.jar"]

注意:可以写在一行的RUN 尽量写在一行,可以压缩层,减小体量

3、案例2

=============

# 基础镜像

FROM

# 设置时区,拷贝java包

ENV TZ=Aisa/Shanghai

COPY ./docker-demo.jar /tmp/app.jar

# 入口,java项目的启动命令

ENTRYPOINT ["java","-jar","/app.jar"]

4、构建

编写好Dockerfile,可以用下面命令来构建镜像

docker build -t myImage:1.0 .

-t 给镜像起名,格式repository:tag ,不指定tag默认为latest

. : 是指定Dockerfile所在目录,如果就在当前目录,则指定为“.”

docker build -t docker-demo . (默认会找当前目录的dockerfile)

  • 22
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫哥运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值