Dockerfile常用指令及使用

1. dockerfile介绍

2. Dockerfile常用指令

指令 描述
FROM 构建新镜像是基于哪个镜像
MAINTAINER 进行维护者姓名或邮箱地址
RUN 构建镜像时运行的shell命令
ENV 设置环境变量
USER 为RUN、CMD和ENTRYPOINT执行命令指定运行用户
EXPOSE 声明容器运行的服务端口
HEALTHCHECK 容器中服务器健康检查
WORKDIR 为RUN、CMD、ENTRYPOINT、COPY和ADD设置工作目录
ENTRYPOINT 运行容器时执行,如果有多个CMD指令,最后一个生效
CMD 运行容器时执行,如果有多个CMD指令,最后一个生效
ADD 添加文件包或文件,带有解压的功能
COPY 单纯复制文件,或文件夹
LABEL 标签

2.1 FROM指令

  • 基本语法

    FROM <image>
    FROM <image>:<tag>
  • 使用案例

    # base image
    FROM centos

2.2 MAINTAINER指令

  • 基本语法

    MAINTAINER <name>
  • 使用案例

    # MAINTAINER
    MAINTAINER shichao@scajy.cn

2.3 run指令

  • 基本语法

    run  <要执行的命令>
    run <command> (shell模式)
    run [ "executable", "param1", "param2" ] (exec模式)
  • 使用案例

    run <command>  (shell模式)
    /bin/sh -c command
    CMD /bin/sh -c 'nginx -g "daemon off;"'
    run [ "executable", "param1", "param2" ] (exec模式)
    run ["/bin/bash" , "-c", "nginx -g daemon off" ]

2.4 expose指令

  • 基本语法

    expose <prot> [<port>...]
  • 使用案例

    EXPOSE 80

2.5 cmd命令

  • 基本语法

    cmd [ "executable" , "param1" , "param2"  ] (exec模式)
    cmd command param1 param2 (shell模式)
  • 使用案例

    CMD /bin/sh -c 'nginx -g "daemon off;"'

2.6 entrypoint指令

  • 基本语法

    cmd [ "executable" , "param1" , "param2"  ] (exec模式)
    cmd command param1 param2 (shell模式)
  • 使用案例

    ENTRYPOINT ["nginx"]

2.7 ADD指令

  • 基本语法

    ADD <"src"> ...<dest>
    ADD["<src>"..."<dest>"] (适用于文件路径中有空格的情况) COPY <src>...<dest>
    COPY [ "<src>"..."<dest>" ] (适用于文件路径中有空格的情况)
  • 使用案例

    ADD nginx-1.12.2.tar.gz /usr/local/src
    
    COPY index.html /usr/local/nginx/html/
    
    #执行结果
    [root@1-230 nginx]# curl 192.168.0.230:8082
    ni hao yello

2.8 VOLUME指令

  • 基本语法

    volume ["/data"]

2.9 workdir指令

  • 基本语法

    WORKDIR /path/to/workdir
  • 使用案例

    # change dir to /usr/local/src/nginx-1.12.2
    WORKDIR /usr/local/src/nginx-1.12.2

2.10 user指令

  • 基本语法

    USER NGINX
    USER user USER uid
    USER user:group USER uid:gid
    USER user:gid user uid:group

2.11 ONBUILD指令

  • 基本语法

    ONBUILD [INSTRUCTION]

3. 构建镜像

  • docker build镜像

    	Usege:docker  build [OPTIONS]  PATH |  URL  | - [flags]
    OPTIONS:
    -t:--tag list #镜像名称
    -f:--flie string #指定dockerfile文件位置 案例:
    docker build .
    docker build -t test/v1 .
    docker build -t test/v1 -f /path/Dockerfile
    docker build -t test/v1 http://xxxx.example.com/Dockerfile

Dockerfile常用指令及使用的更多相关文章

  1. 第 3 章 镜像 - 016 - Dockerfile 常用指令

    Dockerfile 常用指令 1.FROM 指定base镜像2.MAINTAINER 设置镜像的作者,可以为任意字符串3.COPY 从build context 复制到镜像 COPY 支持两种形式: ...

  2. Dockerfile 常用指令 - 每天5分钟玩转 Docker 容器技术(16)

    是时候系统学习 Dockerfile 了.下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档. FROM指定 base 镜像. MAINTAINER设置镜像的作者,可以是任 ...

  3. Dockerfile 常用指令

    下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档. FROM指定 base 镜像. MAINTAINER设置镜像的作者,可以是任意字符串. COPY将文件从 build ...

  4. 转 Dockerfile 常用指令 - 每天5分钟玩转 Docker 容器技术(16)

    是时候系统学习 Dockerfile 了. 下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档. FROM指定 base 镜像. MAINTAINER设置镜像的作者,可以是 ...

  5. Dockerfile常用指令说明

    具体解释:https://blog.csdn.net/achenyuan/article/details/80231922 将dockerfile文件和生成好的jar 使用ftp工具上传到linux服 ...

  6. Dockerfile常用指令

    FROM 构建的新镜像基于那个镜像 , FROM ubuntu:14 MAINTAINER 镜像维护者姓名或邮箱地址 RUN CMD EXPOSE  声明容器运行服务的端口 ENV ADD  拷贝文件 ...

  7. Docker学习笔记_Dockerfile常用指令

    Dockerfile常用指令

  8. Docker的使用初探(一):常用指令说明

    目录 Docker的使用初探(一):常用指令说明 为什么要用Docker Docker的安装与简单使用 国内镜像加速 常用指令 Docker的使用初探(一):常用指令说明 前几个星期实践的了,再不记录 ...

  9. Docker Compose 配置文件常用指令

    Docker Compose 配置文件常用指令 YAML文件格式及编写注意事项 YAML是一种标记语言很直观的数据序列化格式,可读性高.类似于XML数据描述语言,语法比XML简单的很多. YAML数据 ...

随机推荐

  1. 精选PDF版本书籍第一期

    福利概述 精选JAVA必读书籍的PDF版本(来源于网络,侵删). Effective java 中文版(第2版) Head First 设计模式(中文版) Java并发编程的艺术 Java技术手册(第 ...

  2. 深入了解Netty【四】IO模型

    引言 IO模型就是操作数据输入输出的方式,在Linux系统中有5大IO模型:阻塞式IO模型.非阻塞式IO模型.IO复用模型.信号驱动式IO模型.异步IO模型. 因为学习Netty必不可少的要了解IO多 ...

  3. ASP.NET Uploadify 上传文件过大 报错(http error)借鉴,以防忘记

    Uploadify上传文件原来很早之前用过,没发现什么问题.今天再使用过程中,当文件大于30M的时候就会报错404.查看错误消息提示配置最大上传太小了.需要修改. 记得原来配置上传文件大小在这里:&l ...

  4. 为什么要做一款ERP软件——开源软件诞生7

    技术之外的探讨--第7篇 用日志记录“开源软件”的诞生 赤龙ERP开源地址: 点亮星标,感谢支持,与开发者交流 kzca2000 码云:https://gitee.com/redragon/redra ...

  5. linux 文件类型和权限

    linux 文件类型和权限 ls -l 显示: [user@wyf-201 ~]$ ll total 0 -rw-rw-r--. 1 user user 0 Aug 27 10:49 1.txt dr ...

  6. 15_Python的模块module

    1.模块的概述 1.模块是Python程序架构的一个核心概念,每一个以.py结尾的Python源代码文件都是一个模块 2.模块名和标识符的命名规则一样,由数字字母下划线组成且不能以数字开头,也不要和系 ...

  7. python3 venv

    介绍 venv 是什么? python3 自带的虚拟环境 为什么需要虚拟环境? 当服务器中需要搭建共存多个环境时(不同环境之间会有冲突) 比如说环境1:需要mongo:3.6版本 / 但是环境2:需要 ...

  8. css的引用关系

    总结:离div标签越近,越先被引用 先在同级目录下新建一个stylesheet(是以.css结尾的)注意:link引入进来的css中,class标签也是c1,因为html中div class=c1,因 ...

  9. ARL(资产侦察灯塔系统)-源码搭建

    freebuf能力中心开源了一套资产扫描系统(https://github.com/TophantTechnology/ARL),提供docker版,但并无源码搭建的文档(无完整文档).于是在星光哥及 ...

  10. SSH登录问题 .ssh/known_hosts和 ECDSA key

    问题描述: fakerdeMacBook-Pro:~ faker$ ssh root@123.***.***.34 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...