容器技术介绍:Docker Dockerfile语法与指令

在工作中,通常会根据项目需要制作镜像,Docker可以通过读取Dockerfile文件中的指令来自动构建镜像,Dockerfile文本文件包含镜像构建的命令,通过 docker build 执行 Dockerfile中的一系列指令来自动构建镜像。除了Dockerfile的方式外,也可以使用Docker commit来制作镜像,本文将介绍Dockerfile语法Docker镜像的构建方法。

常用指令

Dockerfile官方文档:https://docs.docker.com/engine/reference/builder/

Docker 顺序执行Dockerfile文件中的指令,指令不区分大小写,为了区分,建议都大写。Dockerfile以 FROM 指令开始,FROM指令指定了构建的父镜像(基础镜像),Dockerfile使用 # 注释行,下面列出其它常用指令:

  • COPY:从本地复制文件,复制文件或者目录到容器里指定路径
  • ADD:可以从网络或者本地复制,将主机构建环境(上下文)目录中的文件和目录、以及一个URL标记的文件拷贝到镜像中,tar类型文件会自动解压。当需要从远程复制文件时,最好使用 curl 或 wget 命令来代替 ADD 命令。
  • LABEL:为镜像生成元数据标签信息
  • WORKDIR:指定工作目录,为后续的RUN、CMD、 ENTRYPOINT、ADD指令配置工作目录。
  • USER:指定运行容器时的用户名或UID,后续命令执行也会使用指定用户。
  • RUN:Dockerfile RUN命令是执行命令的核心部分,在docker build时执行。它接受命令作为参数并用于创建镜像。每条RUN命令在当前基础镜像上执行,并且会提交一个新镜像层:RUN pip install flask
  • CMD:容器运行 docker run 时执行的默认命令。
  • ENV:容器启动的环境变量。
  • ARG:构建环境的环境变量。
  • ENTRYPOINT:指定容器的“入口”。
  • HEALTHCHECK:用于指定某个程序或者指令来监控 docker 容器服务的运行状态

Dockerfile构建容器

常用文件、命令:

  • .dockerignore:设置希望构建时需要忽略的文件,过滤指定文件
  • docker build -f Dockerfile文件名:指定Dockerfile文件
  • docker build -t 标签:添加标签
  • docker build --no-cache:不使用缓存,也就是每次构建时,不管有没有安装过都进行重新构建
  • docker build --build-arg:传递ARG指令变量

1. 创建Dockerfile文件

构建一个dockerfile文件,定制一个Nginx镜像,添加容器健康检查。
Dockerfile:

# 基于 nginx:latest 镜像构建
FROM nginx:latest

# 指定信息
LABEL maintainer="test_dockerfile"

# 设置环境变量
ENV NGINX_VERSION latest
ARG workpath=/data/html/

# 切换root用户
USER root

# 执行命令,安装cur软件,设置软链接把ngin服务的日志显示到终端
RUN apt-get -yq update && apt-get install -y curl && \
ln -sf /dev/stdout /var/log/nginx/access.log && 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值