05Dockerfile

作者 : admin 本文共1411个字,预计阅读时间需要4分钟 发布时间: 2024-06-4 共2人阅读

本文主要介绍下Dockerfile的基本用法和写法

  1. 自定义镜像

05Dockerfile插图

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)

本站无任何商业行为
个人在线分享 » 05Dockerfile
E-->