0
点赞
收藏
分享

微信扫一扫

Docker 入门教程之Dockerfile详解

什么是Dockerfile

Dockerfile 是一个用来自动化构建镜像的文本文件,里面包含了许多构建镜像的指令。

Dockerfile 的格式
  • Dockerfile 由指令和注释构成
  • 添加 # 表示本行为注释,构建镜像时会自动忽略,有一个例外是解析器指令 # directive=value
  • 注释或命令行前的空格会被忽略
  • 关键字不区分大小写,但推荐大写,以区分参数
# 这是注释
FROM centos
RUN echo "hello world"

以下命令等同于上边的

          # 这是加空格的注释
          FROM centos
      # 这是加空格的命令
      RUN echo "hello world"
  • 解析器指令
    正确设置后,可以使用其它特殊的指令,目前仅支持:syntax 和 escape,开启解析器指令有几个注意事项:
  1. 指令 # directive=value 需要写在 dockerfile 文件开头,不然会被当成普通注释
  2. 只能写入一次,多次会无法生效
  3. 空格不会对解析器指令产生影响
  4. 不区分大小写,但推荐小写
  • 环境变量
    可以通过设置环境变量,在命令行执行时解析,变量可以是任何字符串,也可以再次赋值变量
ENV path=/usr/share
ENV real_path=$path
.dockerignore 文件

该文件用来编写镜像打包时的文件忽略规则,由注释和文件匹配规则构成,类似 Git 的忽略文件

# 这是一个注释
*/temp*
*/*/temp*
!/temp/logo
temp?
Dockerfile 指令
# This is a demo
ARG  CODE_VERSION=20.04
FROM ubuntu:${CODE_VERSION}
LABEL version="1.0" \
description="测试镜像" \
org.opencontainers.image.authors="phpworkerman"
EXPOSE 8081/tcp
ENV DIRPATH=/etc
WORKDIR $DIRPATH
RUN pwd
ADD test.conf .
CMD ["bash"]
ENTRYPOINT["ls"]
执行 Dockerfile 文件进行镜像打包
docker build -f /var/www/dockerfile -t phpworkerman/ubuntu:1.0 .
举报

相关推荐

0 条评论