首页 > 其他分享 >dockerfile

dockerfile

时间:2022-08-30 23:46:31浏览次数:65  
标签:... CMD 指定 语法 指令 ENTRYPOINT dockerfile


目录

基本结构

Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 快速创建自定义镜像。

Dockerfile 由一行行命令语句组成,并且支持以 # 开头的注释行。

Docker分为四部分:

  • 基础镜像信息
  • 维护者信息
  • 镜像操作指令
  • 容器启动时默认要执行的指令

指令

FROM

FROM :定制的镜像都是基于 FROM 的镜像(FROM必须是Docker非空开头的第一行)

语法:
FROM <基础镜像>

LABEL MAINTAINER

指定维护者信息

语法:
LABEL MAINTAINER [作者] [邮箱]

RUN

RUN:用于执行后面跟着的命令行命令。有以下俩种格式:

//shell 格式
语法:
RUN <命令行的命令>
# <命令行的命令> 等同于,在终端操作的 shell 命令
//exec 格式
语法: 
RUN ["可执行文件", "参数1", "参数2"]
# 例如:
# RUN ["./test.php", "dev", "offline"] 等价于 RUN ./test.php dev offline

CDM

CMD用于指定启动容器时默认要执行的命令,每个Dockerfile只能有一条CMD命令。如果指定了多条命令,只有最后一条会被执行。

如果用户启动容器时指定了运行的命令,则会覆盖掉CMD指定的命令

CMD支持三种格式:
语法: 
CMD <shell 命令> 
CMD ["<可执行文件或命令>","<param1>","<param2>",...] 
CMD ["<param1>","<param2>",...]  # 该写法是为 ENTRYPOINT 指令指定的程序提供默认参数

EXPOSE

暴露容器的端口

在启动容器时通过-P,Docker主机会自动分配一个端口转发到指定的端口

语法:
EXPOSE <端口1> [<端口2>...]

ENV

指定一个环境变量,会被后续RUN指令使用,并在容器运行时保持

语法:
ENV <key> <value>
ENV <key1>=<value1> <key2>=<value2>...

ADD

该命令将复制指定的到容器中的。其中可以是Dockerfile所在目录的一个相对路径(文件或目录);也可以是一个URL;还可以是一个tar文件(会自动解压为目录)

语法:
ADD <src> <dest>

COPY

复制本地主机的(为Dockerfile所在目录的相对路径,文件或目录)为容器中的。目标路径不存在时会自动创建。
当使用本地目录为源目录时,推荐使用COPY

语法:
COPY [--chown=<user>:<group>] <源路径1>...  <目标路径>
COPY [--chown=<user>:<group>] ["<源路径1>",...  "<目标路径>"]

ENTRYPOINT

类似于 CMD 指令,但其不会被 docker run 的命令行参数指定的指令所覆盖,而且这些命令行参数会被当作参数送给 ENTRYPOINT 指令指定的程序。

但是, 如果运行 docker run 时使用了 --entrypoint 选项,将覆盖 ENTRYPOINT 指令指定的程序。

优点:在执行 docker run 的时候可以指定 ENTRYPOINT 运行所需的参数。

注意:如果 Dockerfile 中如果存在多个 ENTRYPOINT 指令,仅最后一个生效

语法:
ENTRYPOINT <shell 命令>
ENTRYPOINT ["<executeable>","<param1>","<param2>",...]

VOLUME

创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等

语法:
VOLUME ["<路径1>", "<路径2>"...]
VOLUME <路径>

USER

用于指定执行后续命令的用户和用户组,这边只是切换后续命令执行的用户(用户和用户组必须提前已经存在)

语法:
USER <用户名>[:<用户组>]

WORKDIR

为后续的RUN、CMD、ENTRYPOINT指令配置工作目录
可以使用多个WORKDIR指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径

WORKDIR <工作目录路径>

标签:...,CMD,指定,语法,指令,ENTRYPOINT,dockerfile
From: https://www.cnblogs.com/z696/p/16641379.html

相关文章

  • dockerfile
    目录什么是dockerfiledockerfile的基本结构dockerfile的指令创建镜像什么是dockerfiledockerfile构建镜像是以基础镜像为基础。Dockerfile是一个文本文件,内容就是用户......
  • Dockerfile
    Dockerfile目录Dockerfile基本结构指令FROMLABELMAINTAINERRUNCDMEXPOSEENVADDcopyENTRYPOINTVOLUMEUSERWORKDIR基本结构Dockerfile是一个文本格式的配置文件,用户可以......
  • Dockerfile容器设置中文
    FROMcentos:7.6.1810RUNln-snf/usr/share/zoneinfo/Asia/Shanghai/etc/localtime&&\yuminstallglibc-common-y&&\localedef-c-fUTF-8-izh_CN......
  • 【云原生】镜像构建实战操作(Dockerfile)
    目录一、概述二、Dockerfile结构三、常用Dockerfile操作指令1)镜像构建(dockerbuild)2)运行容器测试(dockerrun)3)ARG4)FROM5)MAINTAINER(已弃用)6)VOLUME7)RUN8)COPY9)ADD10)ENV11)WORKDI......
  • dockerfile deploy
    Failedtodeploy'baseDockerfile:Base/Dockerfile':java.lang.RuntimeException:com.fasterxml.jackson.databind.JsonMappingException:NullkeyforaMapnota......
  • 二,Dockerfile
    Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。1、对于开发人员:可以为开发团队提供一个完全一致的开发环境;2、对于测试人员:......
  • 迁移与备份,Dockerfile,Docker私有仓库,Docker-compose,Mysql主从搭建,django读写分离
    1迁移与备份#一个容器内,尽量只有一个软件,不要把mysql,redis,。。。方到一个容器中,而要放到多个容器#镜像---》容器---》装了软件(vim,mysql)---》打包成镜像#打包后的镜......
  • docker篇:迁移备份、Dockerfile、私有仓库、docker-compose
    目录一、迁移备份二、Dockerfile2.1镜像如何获得2.2Dockerfile是什么?2.3如何构建镜像和配置dockerfile三、Docker私有仓库3.1如何将镜像传到公有仓库3.2自己搭建私有......