$ mkdir static_web $ cd static_web $ touch Dockerfile
# Version 0.0.1 FROM ubuntu:14.04 MAINTAINER Hadeian "hadeian@example.com" RUN apt-get update && apt-get install nginx -y RUN echo 'Hi, I am in your container.' > /usr/share/nginx/html/index.html EXPOSE 80
cd static_web # 在构建时为镜像设置标签 # 构建时会将当前上下文上传到docker守护进程 docker build -t "test/static_web:v1" . # 从git仓库构建docker镜像 docker build -t "test/static_web:v1" git@github.com:test/docker-static_web
Dockerfile指令含义:html
指令 | 含义 |
---|---|
FROM | 第一条指令必须是FROM,用于指定基础镜像。 |
MAINTAINER | 该指令会告诉docker做者的信息。 |
RUN | 在容器中运行指定命令,每个RUN指令都会建立一个镜像层,执行成功后,会将此镜像层提交,而后继续执行下一条指令。 |
EXPOSE | 该指令用于向外部公开端口,能够指定多个端口。 |
ENV | 指定容器中的环境变量。 |
CMD | 用于指定一个容器启动时要运行的命令,可被docker run命令覆盖。 |
ENTRYPOINT | 与CMD指令相似,可接受docker run命令传递的参数,但不会被覆盖。 |
WORKDIR | 在容器内部设置一个工做目录,ENTRYPOINT/CMD将在此目录下执行。 |
USER | 指定该镜像会以什么用户运行。 |
VOLUME | 为基于此镜像建立的容器建立一个指定的挂载点。 |
ADD | 将构建环境下的文件和目录复制到镜像中。可使用url做为文件源,可将归档(压缩)文件做为源文件,并在容器中自动解开。 |
COPY | 相似于ADD指令。COPY指令只关心在构建上下文中(当前目录下)复制本地文件,而不会作文件提取和解压工做。 |
LABEL | 用于为Docker镜像添加元数据。元数据以键值对(字典)的形式展示。能够在每条指令中指定一个或多个元数据,不一样元数据之间用空格分离。 |
ARG | 用于定义能够在docker build命令运行时传递给构建运行时的变量。在构建时使用--build-arg指定参数便可。用户只能在构建时指定在Dockerfile中定义过的参数。预约义(默认)ARG变量: HTTP_PROXY http_proxy HTTPS_PROXY https_proxy FTP_PROXY ftp_proxy NO_PROXY no_proxy。使用格式:docker build --build-arg
|
STOPSIGNAL | 用于设置中止容器时发送系统调用信号给容器。这个信号必须是内核系统调用表中合法的数,如9。或者DIGNAME格式的信号名称,如SIGKILL。 |
ONBUILD | 为镜像添加触发器。当一个镜像被用做其余镜像的基础镜像时,触发器才会被执行。触发器会在构建过程当中插入新指令,能够认为这些指令是紧跟在FROM以后指定的。 |
docker push test/static_web # test/static_web: DockerHub用户名/镜像名