41-Dockerfile-Dockerfile简介


前言

  • 本篇开始来学习下Dockerfile相关的用法

Dockerfile 简介

  • Dockerfile : 是用来构建 Docker 镜像的文本文件,是有一条条构建镜像所需要的指令和参数所组成的脚本文件,类似于 Linux 中的 Shell 脚本文件
基础知识
  1. 每条保留字指令都 必须为大写字母 且后面要跟随至少一个参数。
  2. 指令按照从上到下的顺序依次执行。
  3. # 表示注释。
  4. 每条指令都会创建一个新的镜像层并对镜像进行提交。

使用Dockerfile 构建镜像步骤

  1. 编写Dockerfile 文件。
  2. 使用 docker build 命令构建镜像。
  3. 使用 docker run 命令运行容器

Dockerfile 构建过程

  1. Docker 从基础镜像上运行一个容器。
  2. 执行一条指令并对容器进行修改。
  3. 执行类似 docker commit 的操作提交一个新的镜像层。
  4. Docker 再基于刚才提交的镜像运行一个新的容器。
  5. 依次类推,直到 Dockerfile 文件中的所有指令都执行完成

Dockerfile基本结构

  • Dockerfile 主要包含四部分内容:
    1. 基础镜像信息
    2. 维护者信息
    3. 镜像操作指令
    4. 容器启动时指令

Dockerfile示例

自定义centos7镜像。
要求:

  1. 默认登录路径为/usr
  2. 可以使用vim
  1. 编写dockerfile
# dockerfile
FROM centos:7
MAINTAINER dahai<dahai@qq.com>
RUN yum install-y vim
WORKDIR /usr
CMD /bin/bash
  1. 使用 docker build 命令构建镜像
docker build -f dockerfile -t my_centos:1.0 .
  1. 使用 docker run 命令运行容器
docker run -it my_centos:1.0

Dockerfile保留指令

指令说明
FROM指定基础镜像。
MAINTAINER指定维护着信息,已过期,可以使用 LABEL xxx=yyy 来代替。
RUN镜像构建过程中运行的命令。
CMD指定启动容器时默认的命令。
ENTRYPOINT指定镜像的默认入口以及运行命令 。
EXPOSE声明镜像内服务监听的端口,一般而言,此指令只有指导意义,如:SpringBoot 项目的端口是 8080 ,而指定的 EXPOSE 是 8090 ,当然依据 8080 了。
ENV指定环境变量,可以在 docker run 的时候使用 -e 改变。
ADD复制指定的 src 路径下的内容到容器中的 dest 路径下,src 可以为 url 会自动下载,也可以为 tar 文件,会自动解压。
COPY复制本地主机的 src 路径下的内容到镜像中的 dest 路径下,但是不会自动解压等等。
LABEL指定生成镜像的元数据标签信息。
VOLUME创建数据卷挂载点。
USER指定运行容器时的用户名或 UID 。
WORKDIR配置工作目录,为后续的 RUN、CMD、ENTRYPOINT 指令配置工作目录。
ARG指定镜像内使用的参数(如版本号信息等),可以在 docker build 的时候,使用 --build-args 改变。
OBBUILD配置当创建的镜像作为其他镜像的基础镜像是,所指定的创建操作指令。
STOPSIGNAL容器退出的信号值。
HEALTHCHECK健康检查。
SHELL指定使用 shell 时的默认 shell 类型。

总结

  • 从应用软件的角度来看,Dockerfile、Docker 镜像和 Docker 容器分别代表软件的三个不同的阶段:
    • Dockerfile 是软件的原材料。
    • Docker 镜像是软件的交付品。
    • Docker 容器则可以认为是软件镜像的运行态,即根据镜像运行的容器实例
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习de测试小白

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值