Docker File

Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。

还以之前定制 tomcat 镜像为例,这次我们使用 Dockerfile 来定制。

/usr/local/docker目录中,建立一个文本文件,并命名为 Dockerfile

1
2
3
$ mkdir tomcat`
$ cd tomcat
$ touch Dockerfile

其内容

1
2
3
4
5
6
7
8
9
10
11
12
13
FROM tomcat

WORKDIR /usr/local/tomcat/webapps/ROOT

RUN rm -rf *

COPY ./FHM.war .

RUN unzip FHM.war

WORKDIR /usr/local/tomcat/

EXPOSE 8080

FROM 指定基础镜像

RUN 执行命令

COPY 复制文件

格式:

  • COPY <源路径>… <目标路径>
  • COPY [“<源路径1>”,… “<目标路径>”]

和 RUN 指令一样,也有两种格式,一种类似于命令行,一种类似于函数调用。
COPY 指令将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 <目标路径> 位置。

WORKDIR 指定工作目录

格式为 WORKDIR <工作目录路径>
使用 WORKDIR 指令可以来指定工作目录(或者称为当前目录),以后各层的当前目录就被改为指定的目录,如该目录不存在,WORKDIR 会帮你建立目录。

EXPOSE 暴露端口

docker容器暴露端口给宿主机。

启动容器

1
2
3
1 
//制定宿主机80端口访问容器的暴露端口
docker run -p 80:8080 tomcat

1
2
3
2 
//随机端口访问容器的暴露端口
docker run -P tomcat

构建镜像

在DockerFile文件下运行

1
$ docker build -t 镜像名 .

.。这个点是上下文路径