docker之Dockerfile
来源:互联网 发布:装修设计的软件 编辑:程序博客网 时间:2024/06/10 10:31
docker之Dockerfile
- 一般分为4部分
- 基础镜像信息
- 维护者信息
- 镜像操作者信息
- 镜像操作指令和容器启动时执行的指令
指令
- # 注释
- FROM 或FROM :,第一条指令必须为FROM指令(同一Dockerfile中创建多个镜像,可以使用多个FROM指令)
- MAINTAINER , 指定维护者信息
- RUN 或 RUN [“executable”, “param1”, “param2”], param参数通过-c选项输入, 如
RUN apt-get update && apt-get install -y inotify-tools nginx apache2 openssh-server
每条RUN指令,将在当前镜像基础上执行指定命令,并提交新的镜像,命令较长是可以 \反斜杠换行
CMD 指定启动容器时的执行命令,支持三种格式
- CMD [“executable”, “param1”, “param2”], 使用exec执行,推荐方式
- CMD command param1 param2, 在/bin/sh中执行,提供给需要交互的应用
- CMD [“param1”, “param2”],提供给ENTRYPOINT的默认参数
注意: 每个Dockerfile只能有一条CMD命令,如果有多条,只有最后一条被执行,如果用户启动容器时,指定了运行命令,则会覆盖CMD指定的命令
EXPOSE […] 例如:
EXPOSE 22 80 8443
作用: 告诉Docker服务器容器暴露的端口号,供互联系统使用,启动容器时需要使用-P或-p,将宿主机端口映射到容器端口
- ENV , 指定一个环境变量(后续被RUN命令使用,并在容器运行时保持)
ADD , 复制指定src到容器中的dest, src可以是Dockerfile所在目录的相对路径(文件或目录),也可以是url,或者tar文件(自动解压为目录)
COPY , 复制本地主机的src(为dockerfile所在的目录的相对路径,文件或目录)到容器中的dest,dest不存在则自动创建,当使用本地目录为源目录时,推荐使用COPY
- ENTRYPOINT [“executable”, “param1”, “param2”] 或 ENTRYPOINT command param1 param2(shell中执行), 配置容器启动后执行的命令,并且不可被docker run提供的参数覆盖,每个Dockerfile中只能有一个ENTRYPOINT,当指定多个时,只有最后一个生效
- VOLUME [“/data”], 创建一个可以从本地主机或其他容器挂载的挂载点,一般用于存放数据库和需要保存的数据等
- UESR daemon, 指定运行容器的用户名或UID, 后续的RUN也会使用指定的用户(当服务不需要管理员权限时,可以指定运行用户)
- WORKDIR /path/to/workdir, 为后续的RUN, CMD, ENTRYPOINT指令配置工作目录,可以使用多个,并且如果后续命令是相对路径,则会基于之前命令指定的路径
WORKDIR /aWORKDIR bWORKDIR cRUN pwd则最终输出 /a/b/c
- ONBUILD [INSTRUCTION], 配置当所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令,后面基于该镜像创建的新镜像执行FROM时,会执行基础镜像中的ONBUILD指令
运行
- docker build [options] 路径, 建议放Dockerfile的目录为空目录, -t可以指定镜像的标签信息,比如指定Dockerfile所在路径为/tmp/docker_builder/,并且希望生成镜像标签为build_repo/first_image,则可以如下
docker build -t build_repo/first_image /tmp/docker_builder
阅读全文
0 0
- docker之dockerfile
- docker学习之Dockerfile
- Docker之Dockerfile(二)
- docker 学习之Dockerfile
- docker之Dockerfile
- Docker学习笔记之Dockerfile
- Docker 之Dockerfile 快速学习
- docker--dockerfile
- docker之dockerFile(解决hosts,hostname问题)
- docker学习之常用Dockerfile指令
- docker笔记之构建nginx的Dockerfile
- docker笔记之构建nginx的Dockerfile
- docker未来之我见=一个dockerfile+一个script
- Docker实战之入门以及Dockerfile学习笔记
- docker镜像制作之Dockerfile文件---snort
- docker镜像制作之Dockerfile文件---hadooop伪分布式
- Docker学习文档之三 其他相关-Dockerfile指令
- docker学习笔记之dockerfile创建镜像
- BootStrapDatePicker时间选择器--Tango
- java并发编程学习(4)
- [LeetCode]罗马数字转为普通数字
- Hadoop表连接
- 3、Determine whether an integer is a palindrome
- docker之Dockerfile
- 欢迎使用CSDN-markdown编辑器
- noip 2010 关押罪犯 二分图
- 求平面集内距离最长 (凸包+旋转卡壳)
- Python 初探5
- Round House
- 控制芯片类型简称
- 平均最短路径长度——网络建模之基本指标
- 筛法加强版