【Docker】Dockerfile 构建文件

简介: 【1月更文挑战第26天】【Docker】Dockerfile 构建文件

Dockerfile 是用于构建 Docker 镜像的文本文件,其中包含一系列的指令和参数,用于描述镜像的构建步骤和配置。通过 Dockerfile,您可以定义镜像中的操作系统、应用程序、依赖库等内容,以及如何配置和运行这些组件。

Dockerfile 可以认为是Docker镜像的描述文件,是由一系列命令和参数构成的脚本。主要作用是用来构建docker镜像的构建文件。

通过Dockerfile 文件构建一个属于自己的镜像。

从应用软件的角度来看,Dockerfile、Docker镜像与Docker容器分别代表软件的三个不同阶段,

  • Dockerfile是软件的原材料
  • Docker镜像是软件的交付品
  • Docker容器则可以认为是软件镜像的运行态,也即依照镜像运行的容器实例

Dockerfile面向开发,Docker镜像成为交付标准,Docker容器则涉及部署与运维,三者缺一不可,合力充当Docker体系的基石。

Dockerfile,需要定义一个Dockerfile,Dockerfile定义了进程需要的一切东西。Dockerfile涉及的内容包括执行代码或者是文件、环境变量、依赖包、运行时环境、动态链接库、操作系统的发行版、服务进程和内核进程(当应用进程需要和系统服务和内核进程打交道,这时需要考虑如何设计namespace的权限控制)等等;

Docker镜像,在用Dockerfile定义一个文件之后,docker build时会产生一个Docker镜像,当运行 Docker镜像时会真正开始提供服务;

Docker容器,容器是直接提供服务的。

Dockerfile 构建命令:

docker build -t 镜像名:版本号 .Dockerfile文件所在位置

Dockerfile 构建镜像流程:

Dockerfile的构建核心三个步骤:

  1. 编写Dockerfile文件
  2. docker build命令构建镜像
  3. docker run依镜像运行容器实例

Dockerfile内容基础知识:

  • 每条保留字指令都必须为大写字母且后面要跟随至少一个参数
  • 指令按照从上到下,顺序执行
  • #表示注释
  • 每条指令都会创建一个新的镜像层并对镜像进行提交

Docker执行Dockerfile的大致流程:

  • docker从基础镜像运行一个容器
  • 执行一条指令并对容器作出修改
  • 执行类似docker commit的操作提交一个新的镜像层
  • docker再基于刚提交的镜像运行一个新容器
  • 执行dockerfile中的下一条指令直到所有指令都执行完成


简单示例:

# 使用官方的基础镜像

FROM ubuntu:20.04

# 设置工作目录

WORKDIR /app

# 复制当前目录下的所有文件到工作目录

COPY . .

# 安装应用程序的依赖

RUN apt-get update && \

   apt-get install -y python3 && \

   apt-get clean && \

   rm -rf /var/lib/apt/lists/*

# 设置环境变量

ENV LANG C.UTF-8

# 定义容器启动时执行的命令

CMD ["python3", "app.py"]


这个 Dockerfile 的作用是构建一个基于 Ubuntu 20.04 的镜像,安装 Python3,并运行一个名为 app.py 的应用程序。


Docker 用户可以使用 docker build 命令根据 Dockerfile 构建镜像,例如:

docker build -t my-python-app .

上述命令会在当前目录下查找 Dockerfile,并构建一个名为 my-python-app 的镜像。随后,可以使用 docker run 命令运行该镜像作为容器。

docker run -it my-python-app

这是一个简单的示例,实际的 Dockerfile 可以更加复杂,根据应用程序的需求进行定制。它是使用 Docker 构建和部署容器化应用的核心配置文

目录
打赏
0
0
0
0
145
分享
相关文章
docker运维查看指定应用log文件位置和名称
通过本文的方法,您可以更高效地管理和查看Docker容器中的日志文件,确保应用运行状态可控和可监测。
109 28
|
2月前
|
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
296 76
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
3001 12
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。Dockerfile定义了构建镜像所需的所有指令,包括基础镜像选择、软件安装、文件复制等,极大提高了开发和部署的灵活性与一致性。掌握Dockerfile的编写,对于提升软件开发效率和环境管理具有重要意义。
88 9
【赵渝强老师】构建Docker Swarm集群
本文介绍了如何使用三台虚拟主机构建Docker Swarm集群。首先在master节点上初始化集群,然后通过特定命令将node1和node2作为worker节点加入集群。最后,在master节点上查看集群的节点信息,确认集群构建成功。文中还提供了相关图片和视频教程,帮助读者更好地理解和操作。
深入理解Docker镜像构建过程
深入理解Docker镜像构建过程
99 0
在Docker中,Dockerfile有哪些常见指令?
在Docker中,Dockerfile有哪些常见指令?
Docker Dockerfile 语法与指令
Docker Dockerfile 语法与指令
110 0