1、通过容器构建
$ docker commit
参数说明:
-a --author=""指定作者
-m --message=""构建说明
-p --pause=true
2、通过Dockerfile构建
A.命令
$ docker build [OPTIONS] PATH | URL | -
参数说明:
--force-rm=false
--no-cache=false
--pull=false
-q --quiet=false
--rm=true
-t --tag="指定构建镜像Dockerfile文件的路径"
B.Dockerfile指令格式
#First Dockerfile
FROM ubuntu:14.04
MAINTAINER dormancypress "dormancypress@outlook.com"
RUN apt-get update
RUN apt-get install -y nginx
EXPOSE 80
C.Dockerfile参数介绍
参数 | ||
FROM <image> FROM <image>:<tag> | 构建镜像依赖的基础镜像 | 该镜像必须是基础镜像 |
MAINTAINER | 表示镜像的所有者以及作者 | |
RUN <command> RUN ["executable","param1","param2"] | 指定当前镜像运行的命令 | shell模式 /bin/sh -c command exec模式 RUN ["/bin/bash","-c","echo hello"] |
EXPOSE <port> [<port>…] | 指定运行该镜像容器使用的端口 | 指定一个或多个端口 |
CMD command param1 param2 CMD ["executable","param1","param2"] CMD ["param1","param2"] | 指定容器运行时的运行命令 等级:RUN>CMD | shell模式 exec模式 作为ENTRYPOINT指令的默认参数 |
ENTERYPOINT ["executable","param1","param2"] ENTERYPOINT command param1 param2 | 指定容器运行时的运行命令 不会被覆盖,除非使用docker run --entrypoint命令特殊指定 | exec模式 shell模式 |
ADD <src>…<dest> ADD ["<src>"…"<dest>"] | 设置镜像的目录文件 ADD包含类似tar的解压功能 | 目标文件的来源地址(本地地址,构建目录的相对地址|远程地址,不建议使用)和目标地址(镜像路径的绝对路径) 适用于文件路径中有空格的情况 |
COPY ["<src>"…"<dest>"] COPY <src>…<dest> | 设置镜像的目录文件 单纯复制文件,Docker推荐使用COPY | 适用于文件路径中有空格的情况 目标文件的来源地址(本地地址,构建目录的相对地址|远程地址,不建议使用)和目标地址(镜像路径的绝对路径) |
VOLUME ["/data"] | ||
WORKDIR /path/to/workdir | 镜像构建及运行时的环境设置 镜像创建容器时设置工作目录 通常使用绝对路径 | |
ENV <key> <value> ENV <key>=<value>… | 设置环境变量 | |
USER daemon | 设置基于那种用户的形式运行 | USER nginx 以nginx的身份形式运行 |
ONBUILD [INSTRUCTION] | 镜像触发器 当一个镜像被其他镜像作为基础镜像时执行 该命令在构建过程插入 | |
$ docker build --no-cache | 构建过程不使用缓存 | |
$ docker history <image> | 查看构建历史 |