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. java初探(1)之静态页面化——客户端缓存

    利用服务端缓存技术,将页面和对象缓存在redis中,可以减少时间浪费,内存开销.但在每次请求的过程中,仍然会有大量静态资源的请求和返回. 使用静态页面技术,页面不必要使用页面交互技术,比如thymel ...

  2. 08_线程间通信 ITC

    1.线程间的通信方式 1.共享全局变量 2.线程队列(queue) 3.信号量(Semaphore) 2.共享全局变量进行通信 from threading import Thread import ...

  3. Java里一个线程两次调用start()方法会出现什么情况

    Java的线程是不允许启动两次的,第二次调用必然会抛出IllegalThreadStateException,这是一种运行时异常,多次调用start被认为是编程错误. 如果业务需要线程run中的代码再 ...

  4. CDH5.16.1集群企业真正离线部署

    一.准备工作 1.离线部署主要分为三块: MySQL离线部署 CM离线部署 Parcel文件离线源部署 2.规划 节点 MySQL部署组件 Parcel文件离线源 CM服务进程 大数据组件 hadoo ...

  5. VS调试出现解决 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题

  6. Openstack 一直在调度中解决

    查看日志/var/log/nova/nova-scheduler.log,/var/log/nova/nova-compute.log ,均无报错 查看/var/log/nova/nova-condu ...

  7. python字符串和列表小案例

    python 目录 python 一.字符串 1.给定一个字符串,利用切片将字符串反转 2.给定一个字符串,将空格替换为逗号 3.给定一个字符串,大写改为小写 4.str = '' ,li = ['l ...

  8. Linux自动同步时间的方法

    介绍两种同步linux系统的时间方法: (1) 开启ntpd服务,即配置ntp服务器实现时间同步. (2) 利用ntp客户端程序,即ntpdate同步时间. 注意:因为ntp服务器本来就会与上层时间服 ...

  9. 关于orm的个人测试——SqlSugar与FreeSql

    前言 转眼已经过了金九,光阴真的是似箭啊,周六日常加班,忙里抽闲就想鼓捣个啥看看,刚好最近想着有没有必要换个orm,从当时原生到Dapper,又到现在的Sqlsugar,因为经常听到几个不错的orm, ...

  10. 【知识分享】Navicat Premium for Mac的破解教程

    转自Navicat Premium for Mac v12.0.22.0 破解教程,macOS上手动破解,无需补丁,无毒下载了Navicat,没有注册码,突然发现了这篇破解教程,竟爱不释手,顾Copy ...