Dockerfile常用命令

发布时间:2022-07-01 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Dockerfile常用命令脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

常用指令:FROM、CMD、RUN、EXPOSE、ENV、WORKDIR等

FROM

指定基础镜像,必须为第一个指令,可使用多个FROM,尽量使用官方提供的image

RUN

执行命令,常用于安装所需文件,复杂的RUN建议使用 &&合并成一行,减少无意义分层

FROM centos
RUN yum install wget
RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
RUN tar -xvf redis.tar.gz
# 以上执行会创建 3 层镜像。可简化为以下格式:
FROM centos
RUN yum install wget 
    && wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" 
    && tar -xvf redis.tar.gz

WORKDIR

指定工作目录

WORKDIR /workspace/

注意:通过WORKDIR设置工作目录后,Dockerfile中其后的命令RUN、CMD、ENTRYPOINT、ADD、COPY等命令都会在该目录下执行。在使用docker run运行容器时,可以通过-w参数覆盖构建时所设置的工作目录。

ADD和COPY

将复制上下文目录文件复制到容器指定路径,ADD可将压缩文件自动解压至目标目录,大部分情况COPY优于ADD

LABEL

定义镜像的元数据,类似于注释

EXPOSE

声明端口,在运行时使用随机端口映射时,也就是 docker run -P 时,会自动随机映射 EXPOSE 的端口

ENV

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

ENV MYSQL_VERSION 5.6      # 设置环境变量
RUN apt-get install -y mysql-server = "${MYSQL_VERSION}" 
		$$ rm -rf /var/lib/apt/lists/*      # 引用

VOLUME

指定容器挂载目录,docker run 的时候,可以通过 -v 参数修改挂载点

ENTRYPOINT

类似于CMD指令,但其不会被 docker run 的命令行参数指定的指令所覆盖,而且这些命令行参数会被当作参数送给ENTRYPOINT指令指定的程序。 但是, 如果运行 docker run 时使用了 --entrypoint 选项,将覆盖 CMD 指令指定的程序。 注意:如果 Dockerfile 中如果存在多个 ENTRYPOINT 指令,仅最后一个生效。

CMD

类似于RUN指令,用于运行程序,但CMDdocker run 时运行,RUN 是在 docker build。 注意:CMD 指令指定的程序可被 docker run 命令行参数中指定要运行的程序所覆盖;如果 Dockerfile 中如果存在多个CMD 指令,仅最后一个生效。

MAINTAINER

添加维护者信息

MAINTAINER John

脚本宝典总结

以上是脚本宝典为你收集整理的Dockerfile常用命令全部内容,希望文章能够帮你解决Dockerfile常用命令所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: