Dockerfile常用指令记录
来源:互联网 发布:如何改变网络的拥堵 编辑:程序博客网 时间:2024/05/21 13:16
FROM
格式为 FROM <image> 或 FROM<image>:<tag> 。
第一条指令必须为 FROM 指令。
并且,如果在同一个Dockerfile中创建多个镜像时,可以使用多个 FROM 指令(每个镜像一次)。
MAINTAINER
格式为 MAINTAINER <name> ,指定维护者信息。
COPY
格式为 COPY <src> <dest> 。
复制本地主机的 <src> (为Dockerfile所在目录的相对路径)到容器中的 <dest> 。
当使用本地目录为源目录时,推荐使用 COPY 。
ADD
格式为 ADD <src> <dest> 。
与 COPY 类似,从 build context 复制文件到镜像, <src> 可以是Dockerfile所在目录的一个相对路径。不同的是,如果 src 是归档文件(tar, zip, tgz, xz 等),文件会被自动解压到 dest。
RUN
格式为 RUN <command> 或 RUN["executable", "param1", "param2"] 。
前者将在shell终端中运行命令,即 /bin/sh-c ;后者则使用 exec 执行。
指定使用其它终端可以通过第二种方式实现,例如 RUN["/bin/bash", "-c", "echo hello"] 。
每条 RUN 指令将在当前镜像基础上执行指定命令,并提交为新的镜像。
当命令较长时可以使用 \ 来换行。
CMD
支持三种格式
CMD["executable","param1","param2"] 使用 exec 执行,推荐方式;
CMD command param1 param2 在 /bin/sh 中执行,提供给需要交互的应用;
CMD ["param1","param2"] 提供给 ENTRYPOINT 的默认参数;
指定启动容器时执行的命令,每个Dockerfile只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行。
如果用户启动容器时候指定了运行的命令,则会覆盖掉 CMD 指定的命令。
docker run -i -t myimage /bin/bash //覆盖CMD中的命令 执行/bin/bash
ENV
格式为 ENV<key> <value> 。
指定一个环境变量,会被后续 RUN 指令使用,并在容器运行时保持。
例如ENV JAVA_HOME /usr/lib/jvm/default/jre
WORKDIR
格式为 WORKDIR /path/to/workdir 。
为后续的 RUN 、 CMD 、 ENTRYPOINT 指令配置工作目录。
可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。例如
WORKDIR /home
WORKDIR admin
RUN pwd
则最终路径为 /home/admin
ENTRYPOINT
两种格式:
ENTRYPOINT ["executable","param1", "param2"]
ENTRYPOINT command param1 param2 (shell中执行)。
配置容器启动后执行的命令,并且不可被 dockerrun 提供的参数覆盖。
每个Dockerfile中只能有一个 ENTRYPOINT ,当指定多个时,只有最后一个起效。
EXPOSE
格式为 EXPOSE <port> [<port>...] 。
告诉Docker服务端容器暴露的端口号,供互联系统使用。eg:EXPOSE 80
VOLUME
格式为 VOLUME ["/data"] 。为容器添加一个数据卷
创建一个可以从挂载宿主机文件或目录到容器的挂载点,一般用来存放数据库和需要保持的数据等。
docker run --name data -v /opt/data -t -i docker.io/ubuntu /bin/bash可以直接挂载宿主机文件或目录到容器里,可以理解为目录映射,这样就可以让所有的容器共享宿主机数据,从而只需要改变宿主机的数据源就能够影响到所有的容器数据。
-v 后面的映射关系是"宿主机文件/目录:容器里对应的文件/目录",其中,宿主机上的文件/目录是要提前存在的,容器里对应的文件/目录会自动创建。
docker run --name data -v /opt/data/demo.sh:/usr/server/demo.sh -t -i docker.io/ubuntu /bin/bash数据卷权限:
挂载的数据默认为可读写权限。但也可以根据自己的需求,将容器里挂载共享的数据设置为只读,这样数据修改就只能在宿主机上操作。
docker run --name data -v /opt/data/demo.sh:/usr/server/demo.sh:ro -t -i docker.io/ubuntu /bin/bash
参考:Dockerfile常用指令
docker数据卷的使用
dockerfile做的事情其实就是拉镜像,镜像启容器,容器构建镜像,镜像再启容器,容器再转镜像,删除中间镜像和容器,大概就是这样的。
- Dockerfile常用指令记录
- Dockerfile 常用指令
- docker筑基篇-05-Dockerfile常用指令
- docker学习之常用Dockerfile指令
- Dockerfile指令
- Dockerfile指令
- Dockerfile指令
- 使用Dockerfile创建镜像各常用指令说明 - 知识林
- Mysql常用指令记录
- linux常用指令记录
- linux常用指令记录
- Dockerfile指令总结
- Dockerfile指令总结
- Dockerfile 指令详解
- Dockerfile文件指令
- Docker DockerFile指令
- Dockerfile 指令和结构
- Dockerfile指令详解
- 线性代数的本质与几何意义 02. 线性组合、张成的空间、基(3blue1brown 咪博士 图文注解版)
- js高程基础语法复习目录
- net-snmp的安装配置和移植应用(1)
- 基于物理着色:BRDF 公式近似简化推导
- Java 8的Optional类
- Dockerfile常用指令记录
- >如果有年纪为S2的学生,就查询参加S2学科考试的学员学号,科目编号,考试成绩,考试时间
- android log
- 使用FIO测试工具对新睿云、xrcloud.net、云主机进行测试
- pl/sql工具下oracle存储过程学习笔记
- 假设某一班级有M名学生,没人考N门功课,试设计两个c++函数,(1)求第i个学生N门功课的平均分数。(2)求第j门课程的平均分数
- [蓝桥杯校选出题相关]
- 第13周项目3-是否是二叉排序树?
- CentOS7 安装Docker社区版