Docker 前端实践

# 使用 .dockerignore 文件

可以通过 .dockerignore 文件来让Docker忽略匹配路径或文件,在创建镜像时不将无关数据发送到服务器。

比如:

*/temp *
*/*/temp *
tmp?
~*
Dockerfile
!README.md
  • *: 表示任意多个字符;
  • ?: 表示单个字符;
  • !: 表示不匹配,即不忽略指定的路径或文件;
指令 格式 实例 说明
ARG ARG <name>[=<default value>] ARG VERSION=9.3 定义创建镜像过程中使用的变量
FROM 1.FROM <image> [AS <name>]
2.FROM <image>:<tag> [AS <name>]
3.FROM <image>@<digest> [AS <name>]
FROM debian:${VERSION} 指定所创建镜像的基础镜像
LABEL LABEL <key1>=<value1> <key2>=<value2> LABEL version="1.0.0-rc3" 为生成的镜像添加元数据标签信息
EXPOSE EXPOSE <port> [<port>/<protocol>] EXPOSE 22 808443 声明镜像内服务监听的端口
ENV 1.ENV <key> <value>
2.ENV <key>=<value>
ENV APP_HOMT=/usr/local/app 指定环境变量
ENTRYPOINT 1.ENTRYPOINT ["executable", "param1", "param2"]
2.ENTRYPOINT command param1 param2
-- 指定镜像的默认入口命令
VOLUME VOLUME ["/data"] -- 创建一个数据卷挂载点
USER USER daemon -- 指定运行容器时的用户名或UID
WORKDIR WORKDIR /path/to/workdir -- 配置工作目录
ONBUILD ONBUILD [INSTRUCTION] ONBUILD ADD . /app/src 创建子镜像时指定自动执行的操作命令
STOPSIGNAL STOPSIGNAL signal -- 指定退出的信号值
HEALTHCHECK 1.HEALTHCHECK [OPTIONS] CMD command
2.HEALTHCHECK NONE
配置所启动容器如何进行健康检查
SHELL SHELL ["executable", "param1"] SHELL ["/bin/sh", "-c"] 指定默认的 shell 类型
RUN 1.RUN <command>
2.RUN ["executable", "param1","param2"]
RUN ["/bin/bash","-c","echo hello"] 运行指定命令
CMD 1.CMD ["executable", "param1","param2"]
2.CMD command param1 param2
3.CMD ["param1","param2"]
启动容器时指定默认执行的命令
ADD ADD <src> <dest> ADD *.c /code/ 将src目录下的内容添加到容器中的dest目录下
COPY COPY <src> <dest> 复制内容到镜像