Docker DockerFile文件指令

1.dockerfile指令格式

  1. # Comment注释
  2. INSTRUCTION argument指令名 + 参数

2.普通指令

1. FROM

已存在的镜像,基础镜像,第一条非注释指令

FROM <image>

FROM <image>:<tag>

2. MAINTAINER

镜像作者信息、联系信息
与dockercommit -a类似

MAINTAINER <name>

3. RUN

指定当前镜像中运行的命令

每一个RUN指令都毁在当层镜像的上层创建一个新的镜像

RUN <command> shell模式

默认/bin/sh -c command

RUN ["executable","param1","param2"] exec模式

指定其他shell:
RUN["/bin/bash","-c","echo hello"]

docker 构建过程:
docker build -t="NAME" -t 指定镜像名

4. EXPOSE

指定运行该容器使用的端口

EXPOSE <port>[<port>...]

出于安全考虑,使用中仍需用 -p <port>命令指定

3. CMD ENTERYPOINT 容器运行时运行的命令

1. CMD

CMD ["executable","param1","param2"] exec模式

CMD <command> shell模式

与RUN区别:RUN是在容器构建是运行,CMD是在容器运行时运行。在docker run中指定命令,会覆盖CMD命令,即CMD是默认命令。

CMD ["param1","param2"] 做为ENTRYPOINT指令的默认参数

2. ENTERYPOINT

CMD ["executable","param1","param2"] exec模式

CMD <command> shell模式

与CMD区别:不会被docker run 中运行的命令覆盖。可以使用docker run --entrypoint覆盖。entrypoint可与cmd组合:entrypoint指定命令,cmd指定参数。

4. ADD COPY VOLUME 设置镜像目录及文件

1. ADD

包含类似tar的解压功能,安装tar有所帮助

ADD <src>...<dest>
ADD ["<src>"..."<dest>"]适用于文件路径有空格的情况

2. COPY

使用于纯粹复制文件

COPY <src>...<dest>
COPY ["<src>"..."<dest>"]适用于文件路径有空格的情况

3. VOLUME

VOLUME["/data"]

用于创建的容器添加卷,一个卷可以存在一个或多个容器的特定目录,这个目录可以跨过联合文件系统,并提供如共享数据,对数据持久化功能。

5. WORKDIR ENV USER镜像在构建及容器运行时的环境设置

1. WORKDIR

在容器内部设置工作目录

WORKDIR /path/to/workdir

cmd、entrypoint命令都会在这个目录下执行。
一般使用绝对路径,如果用相对路径会一直传递下去。

2. ENV

设置环境变量,在构建过程中和运行中均有效

ENV <key> <value>
ENV <key>=<value>

3. USER

容器以什么用户运行,不指定默认为root
USER daemon
USER uid:gid
USER user:group

6. ONBULID 类似触发器的指令

ONBULID [INSTRUCTION]
为镜像添加触发器,当一个镜像被用作其他镜像的基础镜像时,触发器被执行,当子镜像被构建时,会插入触发器的指令。ONBUILD指令不会在自己构建时运行。

原文地址:https://www.cnblogs.com/cjb100/p/10617878.html

时间: 2024-10-09 23:10:02

Docker DockerFile文件指令的相关文章

docker Dockerfile文件的编写部分命令

镜像的构建过程:编写dockerfile文件,执行docker build 进行构建镜像,最后docker run 运行容器镜像实例. docker build -t mycentos:1.01 . 构建镜像,最终的名字为mycentos,docker build -f /root/firstdockerfile/Dockerfile2 -t cmdtest . -f参数需要加绝对路径,当当前没有dockerfile文件时需要使用这个参数. docker run -it mycentos:1.0

Docker学习笔记(7-3)Dockerfile的指令(二)

学习目标: Dockfile指令 CMD ENTRYPOINT ADD/COPY/VOLUME WORKDIR/ENV/USER ONBUILD Dockerfile FROM ubuntu:14.04 MAINTAINER liangshengqi "[email protected]" ENV REFRESH_DATE 2017-02-05 RUN apt-get update RUN apt-get install -y nginx COPY index.html  /usr/s

Docker定制容器镜像(利用Dockerfile文件)

1.创建Dockerfile文件 新建一个目录,在里面新建一个dockerfile文件(新建一个的目录,主要是为了和以防和其它dockerfile混乱 ) [[email protected] myfiles]# mkdir centos6.8_dockerfile [[email protected] myfiles]# [[email protected] myfiles]# cd centos6.8_dockerfile/ 创建dockerfile文件(vim Dockerfile) #

ASP.NET CORE做的网站运行在docker上(不用dockerfile文件部署)

原文:ASP.NET CORE做的网站运行在docker上(不用dockerfile文件部署) 按网上的做法用dockerfile文件是可以弄得出来的,http://www.docker.org.cn/article/119.html, 不过我想把网站文件放在外面硬盘目录,再映射进去,这样只要在硬盘目录中修改CSHTML文件后重启一下容器就行了 步骤如下: 1. vs中建立ASP.NET CORE网站,类名为coreweb1 2. 发布到c:\temp\coreweb1目录 3. 先在本地CMD

Dockerfile 文件

Dockerfile文件可以使用docker build 命令快速生成镜像指令如下: FROM   <iFmages>                   //用来指定从哪个镜像的基础上开始创建新的镜像 MAINTAINER  <author>              //设置镜像作者 RUN  <command>                    //设置 shell 或者 exec 执行的命令 ADD  <source> <destinaio

Dockerfile文件那些事(一)

Dockerfile文件那些事(一) Dockerfile是用来构建镜像的,该文件中有这么几个指令: FROM MAINTAINER RUN EXPOSE   上面这四个指令以后咱们慢慢说他们的作用   还有几个常用的指令: CMD ENTERYPOINT ADD COPY VOLUME WORKDIR ENV USER 这些命令就算我都说了也记不住,咱们边学边记忆. 先说下Dockerfile构建过程 1.从基础镜像运行一个容器 2.执行一条指令,对容器作出修改 3.执行类似docker co

docker: Dockerfile命令介绍

pre.ctl { font-family: "Liberation Mono", monospace } p { margin-bottom: 0.25cm; line-height: 120% } a:link { } 前一章介绍了Dockerfile创建镜像的方法,Dockerfile文件都是一些指令,因此要掌握Dockerfile就必须了解这些指令.这一章就介绍下Dockerfile的指令. From: 功能为指定基础镜像,并且必须是第一条指令. 如果不以任何镜像为基础,那么写

asp.net core中DockerFile文件中的COPY

今天在ubuntu系统中使用docker部署asp.net core时遇到了一个问题,docker build 的时候总会在最后一步提示 lstat obj/Docker/publish: no such file or directory. 并且执行docker images查看镜像的时候发现生成的镜像的REPOSITORY和TAG都是<none>. 当执行docker run的时候提示 Unable to find image 'crm:latest' locally 联想到build的时

(八)Docker Dockerfile

虽然,前面已经会 使用 Nginx 和 docker selenium 来启动容器,但也仅仅是会使用,Dcoker 中还有许多概念和细节需要我们继续学习. Dockerfile 文件分析 Dockerfile 由一行行命令语句组成,并且支持以 # 开头的注释行. 一般的 Dockerfile 分为四部分:基础镜像信息. 维护者信息. 镜像操作指令 和 容器启动时执行指令 . 以Selenium/Hub 的 Dockerfile 文件为例: # !!!!!!!!!!!!!!!!!!!!!!!!!!