Docker

1、通过容器构建

  1. $ docker commit

参数说明:

  1. -a --author=""指定作者
  2. -m --message=""构建说明
  3. -p --pause=true

2、通过Dockerfile构建

A.命令

  1. $ docker build [OPTIONS] PATH | URL | -

参数说明:

  1. --force-rm=false
  2. --no-cache=false
  3. --pull=false
  4. -q --quiet=false
  5. --rm=true
  6. -t --tag="指定构建镜像Dockerfile文件的路径"

B.Dockerfile指令格式

  1. #First Dockerfile
  2. FROM ubuntu:14.04
  3. MAINTAINER dormancypress "dormancypress@outlook.com"
  4. RUN apt-get update
  5. RUN apt-get install -y nginx
  6. 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>** 查看构建历史