dockerfile中常用的命令

  • FROM
    指定 base 镜像。
  • MAINTAINER
    设置镜像的作者,可以是任意字符串。
    COPY将文件从 build context 复制到镜像。
  • COPY 支持两种形式:
//注意:src 只能指定 build context 中的文件或目录。
COPY src dest
COPY ["src", "dest"]
  • ADD
    与 COPY 类似,从 build context 复制文件到镜像。不同的是,如果 src 是归档文件(tar, zip, tgz, xz 等),文件会被自动解压到 dest。
  • ENV
    设置环境变量,环境变量可被后面的指令使用。例如:
ENV MY_VERSION 1.3
RUN apt-get install -y mypackage=$MY_VERSION
  • EXPOSE
    指定容器中的进程会监听某个端口,Docker 可以将该端口暴露出来。我们会在容器网络部分详细讨论。
  • VOLUME
    将文件或目录声明为 volume。我们会在容器存储部分详细讨论。
  • WORKDIR
    为后面的 RUN, CMD, ENTRYPOINT, ADD 或 COPY 指令设置镜像中的当前工作目录。
  • RUN
    在容器中运行指定的命令。
  • CMD
    容器启动时运行指定的命令。
    Dockerfile 中可以有多个 CMD 指令,但只有最后一个生效。CMD 可以被 docker run 之后的参数替换。
  • ENTRYPOINT
    设置容器启动时运行的命令。
    Dockerfile 中可以有多个 ENTRYPOINT 指令,但只有最后一个生效。CMD 或 docker run 之后的参数会被当做参数传递给 ENTRYPOINT。

下面我们来看一个较为全面的 Dockerfile:

root@ubuntu:/home/yj/docker/test1# ls
bunch.tar.gz  dockerfile  tmpfile2
root@ubuntu:/home/yj/docker/test1# vim dockerfile # my dockerfile
FROM centos
MAINTAINER yangjin@qq.com
WORKDIR /testdir
RUN touch tmpfile1
COPY ["tmpfile2","."]
ADD ["bunch.tar.gz","."]
ENV WELCOME "you are in mu container,welcome!"
  • 让centos镜像作为base镜像
  • 设置镜像的作者
  • 设置工作目录
  • 把build context 中的tmpfile2移到镜像当前目录
  • 把build context的bunch.tar.gz解压并移到当前目录
  • 设置WELCOME环境变量

结果展示:

[root@8af6a35aa71e testdir]# cd /testdir/
[root@8af6a35aa71e testdir]# ls
bunch  tmpfile1  tmpfile2

Shell 和 Exec 格式

CMD echo "Hello world"
CMD ["/bin/echo", "Hello world"]

CMD 和 ENTRYPOINT 推荐使用 Exec 格式,因为指令可读性更强,更容易理解。RUN 则两种格式都可以。

RUN,CMD,ENTRYPOITN的使用方法

  1. 使用 RUN 指令安装应用和软件包,构建镜像。
  2. 如果 Docker 镜像的用途是运行应用程序或服务,比如运行一个 MySQL,应该优先使用 Exec 格式的 ENTRYPOINT 指令。
  3. CMD 可为 ENTRYPOINT提供额外的默认参数,同时可利用 docker run 命令行替换默认参数

容器学习 之 dockerfile 命令(七)相关推荐

  1. 容器学习 之 镜像命令(九)

    images 显示镜像列表 root@ubuntu:/home/yj# docker images REPOSITORY TAG IMAGE ID CREATED SIZE my-image late ...

  2. 容器学习Day04-Ubuntu常用命令(二)

    目录 前言 一.软件包管理相关命令 1.dpkg 2.apt 二.磁盘管理相关命令 1.fdisk 2.pvcreate&pvdisplay&pvscan&pvremove 3 ...

  3. Docker(三):Dockerfile 命令详解

    上一篇文章Docker(二):Dockerfile 使用介绍介绍了 Dockerfile 的使用,这篇文章我们来继续了解 Dockerfile ,学习 Dockerfile 各种命令的使用. Dock ...

  4. Docker容器学习梳理--日常操作总结

    使用Docker已有一段时间了,今天正好有空梳理下自己平时操作Docker时的一些命令和注意细节: Docker 命令帮助 $ sudo docker Commands:attach Attach t ...

  5. Docker容器学习笔记一

    Docker容器学习笔记一 狂神说B站视频:https://www.bilibili.com/video/BV1og4y1q7M4?p=1 Docker容器学习笔记二:https://blog.csd ...

  6. 【Docker容器学习笔记一】

    一.Docker概述 1.Docker为什么会出现? 一款产品: 开发–上线 两套环境!应用环境,应用配置! 开发 - 运维. 问题:我在我的电脑上可以允许!版本更新,导致服务不可用!对于运维来说考验 ...

  7. 赵大超的学习周志(七)

    赵大超的学习周志(七) 本周是Java学习的第七周,主要是对JDBC的学习,其中包括对JDBC的概述,JDBC的六大步骤,,基本的CRUD,简易的DBUtils封装,Statement与Prepare ...

  8. docker入门,镜像,容器,数据卷,dockerfile,docker网络,springboot微服务打包docker镜像[狂神yyds]

    docker学习大纲 docker概述 docker安装 docker命令 镜像命令 容器命令 操作命令 - docker镜像 容器数据卷 dockerfile docker网络原理 IDEA整合do ...

  9. Docker容器学习梳理--应用程序容器环境部署

    关于国内Docker镜像,可以参考:Docker容器学习梳理--基础知识(2) 的Docker镜像使用. 如果我们需要在Docker环境下部署tomcat.redis.mysql.nginx.php等 ...

最新文章

  1. Web3与智能合约交互实战
  2. ubuntu镜像下载地址(国内镜像源)
  3. 推荐系统 embedding 技术实践总结
  4. 西门子博途编程 - 另类状态机
  5. python代做在哪找靠谱_比较靠谱的资产评估师考试去哪找
  6. php通过ajax下载文件,通过Ajax如何请求下载Execl文件
  7. r720支持多少频率的内存吗_DDR4 2400到DDR4 3200,最大内存频率买多少?为什么买了高频 速度却上不去...
  8. AIX详细查看用户/进程使用内存
  9. html如何写微信弹窗,微信小程序 自定义弹窗实现过程(附代码)_而已_前端开发者...
  10. SpringCloud--Eureka 注册中心原理及其搭建
  11. 开始菜单跑到左边去了_你的车“跑偏”吗?也许是你的方向盘本身就不正
  12. MySQL多版本并发控制机制(MVCC)-源码浅析
  13. 前端vue实现PDF预览
  14. 412 Precondition Failed
  15. 谈cntv.cn的启用
  16. 杀毒软件工作原理 及 现在主要杀毒技术
  17. 基于UML的软件开发过程
  18. IBM__P系列 小型机 故障定位 故障排除
  19. echarts的gallery无法访问
  20. 在财报发布前,美光科技值得买入吗?

热门文章

  1. 130 道 K8s + Docker + DevOps 大厂面试题及知识点详解
  2. Spectre CPU漏洞借着BPF春风卷土重来
  3. 设计模式:迭代器模式(Iterator)
  4. 动手实现一个 localcache - 设计篇
  5. 音视频技术开发周刊 | 231
  6. LiveVideoStackCon 2022 上海站 专题抢先看(4)
  7. 音视频技术开发周刊 | 225
  8. 音视频技术开发周刊 94期
  9. LiveVideoStack:祝大家 2019 新年快乐!
  10. 林绪虹:看好QoE、音视频内容理解与AV1