如何撰写Dockerfile?

Docker指令整理

  • FROM: 使用到的 Docker Image 名称
  • MAINTAINER: 用来说明,撰写和维护这个 Dockerfile 的人是谁,也可以给 E-mail 的资讯
  • RUN: RUN 指令後面放 Linux 指令,用来执行安装和设定这个 Image 需要的东西
  • COPY src dest
  • WORKDIR: Set the Working Directory
  • ADD: 把 Local 的档案复制到 Image 里,如果是 tar.gz 档复制进去 Image 时会顺便自动解压缩
  • ENV: 用来设定环境变数
  • CMD: 设定 Container 启动时要执行的指令
  • CMD的内容,当容器启动若有指定其他命令,会被忽,

[补充 COPY vs ADD]

  • COPY和ADD二个的功用都一样,就是将档案复制进去image里!

  • 差别在於:

    • COPY只能复制本机端的档案或目录
    • ADD能增加远端url的档案到docker image
    • ADD能顺手将本机端复制进去的tar档解开(远端的tar不行!)
  • 罢特!很重要!客倌们!

  • 在实例上并不建议使用ADD来抓取网路上的档案,会使用RUN curl or wget的方式。
    原因是使用一次ADD指令会增加docker image layers一次,原则上layers越多,docker image size就会越大!

[补充 yum]

  • yum clean
  • 清除安装下载时的暂套件原始档,大多是存放在/var/cache/yum,通常会下yum clean packages或是yum clean all,一次全删除。

[补充 gcc]

  • GCC 是开放原始码(open source) 的跨平台编译器(compiler) ,支援编译C 、 C++ 、 Objective-C 、 Fortran 、 Ada 及Go 等程序语言

[补充 libaio-devel-0.3.109-13.el7.x86_64.rpm]

  • libaio-devel - Development files for Linux-native asynchronous I/O access

<<:  Day 01 | 前言与赛程

>>:  [Day 02] 用Laravel写单元测试

安装与反安装--软件的彼得定律对系统的意义

今天要来讲的东西,主要是来自笔者以前看过很喜欢的文章(https://www.ithome.com....

从无到有打造验证码共享的 Line 机器人

想解决的问题 起因是今年七月开 Netflix 开始限制共享家庭方案,认证规则目前没有公开,但会根据...

线性与非线性的资料结构

题组回顾与观念统整 在前三天的刷题实战中,我们一起完成了这三个经典的「资料结构」题: LeetCo...

D36-铁人赛完赛心得

铁人赛完赛罗~~ 在完赛的这一刻,我发现,我获得的东西,比我写出来的东西还多。 - 除了看自己写出来...

[Android Studio] -- Day 1 引言

发想与碎碎念 最近想针对 android studio 来练习练习。 希望透过发文来督促自己。 新的...