Docker instructions
-
FROM
-
FROM指令是最重要的一个且必须为Dockerfile文件开篇的第一个非注释行,用于为映像文件构建过程指 定基准镜像,后续的指令运行与此基准镜像所提供的运行环境。
-
实践中,基准镜像可以是任何可用镜像文件,默认情况下,docker build会在docker主机上查找指定的 镜像文件,在其不存在时,则会从Docker Hub Registry上拉取所需要的镜像文件
-
如果找不到指定的镜像文件,Docker build会返回一个错误信息
-
Syntax
-
FROM <repository>[:<tag>]或
-
FROM <repository>@<digest>
-
<repository>:指定作为base image的名称
-
<tag>: base image的标签,为可选项,默认为latest;
-
-
-
-
MAINTAINER(depreacred) #较新版本中可以使用LABEL 采用K:V格式
-
用于让Dockerfile制作者提供本人的详细信息
-
Docker并不限制MAINTAINER指令可出现的位置,但是推荐将其放置于FROM指令之后
-
-
-
-
Syntax
-
MAINTAINER <authtor>
- <authtor>可以是任何文本信息,约定俗成使用作者笔字及邮箱
-
-
-
- COPY
- 用于从Docker主机复制文件至创建的新映像文件
- Syxtax
- COPY <scr>...<dest>或
- COPY["<src>"..."<dest>"]
- <src>:要复制的源文件或目录,支持使用通配符;
- <dest>:目标路径,即正在创建的image的文件系统路径;建议为<dest>使用绝对路径,否则,COPY指定则为WORKDIR为其起始路径;
- 注意:在路径中有空白字符时,通常使用第二种格式
- 文件复制准则
- <src>必须是build上下文中的路径,不能是其父目录中的文件;
- 如果<src>是目录,则其内部文件或子目录会被递归复制,但<src>目录自身不会被复制;
- 如果指定了多个<src>,或在<src>中使用了通配符,则<dest>必须是一个目录,且必须以 / 结尾;
- 如果<desc>不存在,会被自动创建,这包括其父目录路径。
接下来创建一个dockerfile工作目录,开始写一个简单的dockerfile
[root@node1 ~]# mkdir images [root@node1 ~]# cd images/ [root@node1 images]# vim Dockerfile # Description: test image FROM busybox:latest MAINTAINER "SANDIAN <sandian@node1.com>" #LABEL maintainer = "SANDIAN <sandian@node1.com>" COPY index.html /data/web/html/ #创建一个index.html文件 [root@node1 images]# vim index.html <h1>Dockerfile for node1<h1>
#接下来我们就可以构建镜像
[root@node1 images]# docker build -t httpd:v0-1 ./
#验证
[root@node1 images]# docker run --name web1 --rm httpd:v0-1 cat /data/web/html/index.html
<h1>Dockerfile for node1<h1>