DockerFile,Docker Image和Docker Container之间的不同

本文介绍了Docker的基本概念,包括Docker容器化平台的优势,Dockerfile的用途以及如何构建Docker镜像。Dockerfile是创建Docker镜像的源代码,包含了构建镜像所需的指令。Docker镜像是运行容器的只读蓝图,而Docker容器是根据镜像创建的运行时环境。通过Dockerfile,用户可以自动化构建镜像,确保始终获得最新版本。最后,文章讨论了如何使用Dockerfile构建和运行Docker镜像及容器。
摘要由CSDN通过智能技术生成

Docker 镜像、Docker 容器和 Dockerfile 使 Docker 得到广泛使用。但是,只有 Dockerfile 可用于创建 Docker 镜像。让我们在前进的过程中更多地了解 Docker 和 Dockerfile。

Docker概述

使用容器,Docker 容器化平台可以简化程序的设计、部署和操作。将容器视为软件运输容器;它承载文件和程序等关键内容,以便可以将应用程序快速从制造商传输到消费者。容器化的主要优势之一是它允许开发人员将他们的程序与在任何 Linux 发行版上运行所需的所有依赖项捆绑在一起。这消除了手动安装每个要求的需要。

多个容器,每个都基于相同或不同的图像,可以同时运行。Docker 产生了操作系统的大量实例,可与虚拟机相媲美。另一方面,Docker 允许您构建在同一操作系统上运行的容器。因此,给定的硬件配置可能支持比虚拟机更多的容器。

Docker 容器也可以在虚拟机中运行。Docker 为虚拟机创建添加了一个额外的抽象层和自动化层,使其更易于使用。

什么是 Dockerfile?

它是一个简单的文本文件,包含一组命令或过程。我们运行的这些命令和指南作用于配置为创建新 Docker 映像的基础映像。Dockerfile 是 Docker 镜像的源代码。Dockerfile 是包含各种指令和配置的文本文件。Dockerfile 中的 FROM 命令标识您正在构建的基础镜像。

当您运行 Docker run 命令时,Docker 使用此文件来构建映像本身。Dockerfile 包含图像的创建说明。使用 Dockerfile 比仅仅保留二进制映像的好处是自动构建保证您始终拥有最新版本。这在安全性方面是有利的,因为您不想安装任何不安全的应用程序。

用于创建 Dockerfile 的 Docker 命令示例。

在我们编写第一个 Dockerfile 之前,我们必须首先了解文件包含的内容。

Dockerfile 是指导您创建特定 Docker 映像的指令集。

可以在 Dockerfile 中使用以下命令:

FROMPULLRUNCMD都是命令。

FROM : 生成一个基于 Ubuntu 18.04 的层。

Pull:此命令从您的 Docker 存储库添加文件。

RUN:构建你的容器。

CMD:指定应在容器内执行的命令。

包含必要命令的示例 Dockerfile 如下所示。

``` FROM 18.04 ubuntu

PULL /file

RUN: make / file command.CMD: python /file/file.py ```

Docker Image

Docker Image是包含容器创建说明的只读蓝图。Docker 镜像是为在 Docker 框架上运行而创建的容器。将图像视为容器运行时的蓝图或图片。

一幅图像由许多堆叠组成,类似于照片编辑器中的层,每个层都会改变周围的某些东西。映像包括应用程序的代码或二进制文件、运行时、库和其他文件系统项。Docker 镜像依赖于核心主机操作系统 (OS)。例如,要开发 Web 服务器映像,请从包含 Ubuntu Linux(基本操作系统)的映像开始。然后,最重要的是,安装 Apache 和 PHP。

您可以使用 Dockerfile 手动生成图像,Dockerfile 是一个文本文档,其中包含生成 Docker 图像所需的所有指令。您还可以使用命令 docker pull [name] 从称为注册表的中央存储库或 Docker Hub 等存储库中获取图像。

当 Docker 用户执行一个镜像时,它会创建一个或多个容器实例。容器的操作点可以是开发人员想要的任何东西;它可能安装并配置了一个 Web 服务器,或者它可以以 root 身份执行 bash shell。然而,事实上,大多数图像都包含一些预加载的软件和配置文件。

Docker 镜像是不可撤销的,这意味着它们一旦生成就无法更改。如果您需要更改某些内容,请使用您的修改制作一个新容器并将其另存为另一个图像。

如何构建 Docker 镜像

Docker 图像可以交互式或使用Dockerfile生成。

  • 交互方法
    用户使用此方法从正常运行的 Docker 映像启动容器,并在存储映像之前对环境进行任何必要的修改。交互式技术是构建 Docker 镜像最有效、最直接的方法。第一步是运行 Docker 并打开一个终端窗口。然后使用 image name: tag name命令启动 Docker。这将启动一个与由图像启动的容器的 shell 会话。如果未指定标签名称,Docker 将使用最新版本的映像。之后,图像应该出现在结果中。
  • Dockerfile 方法
    此技术需要创建文本 Dockerfile。Dockerfile 包含用于创建图像的命令。这种方法更加困难和耗时,但不知何故它在持续交付的环境中表现更好。该过程需要生成 Dockerfile 并添加图像的命令。启动 Dockerfile 后,用户会创建一个 .dockerignore文件以消除最终构建不需要的任何文件。根目录下有一个docker-ignore文件。然后使用 Docker build 命令生成 Docker 镜像,之后分配镜像名称和标签。

使用 Dockerfile 构建 Docker 镜像

让我们从指定 dockerfile simplidocker的位置开始。

docker build [OPTIONS] PATH | URL | -

现在,让我们使用 Dockerfile 创建一个简单的图像:

Docker build [location of your Dockerfile]

现在可以通过添加 -t 标志为新图片标上名称:

docker build -t simpli image

构建 Docker 镜像后,您可以通过运行以下命令来验证它:

docker images

结果应该显示simpli_docker在存储库中可用。

Docker Container

容器是用于运行应用程序的紧凑的虚拟化运行时环境。每个容器都是一个软件包,包括运行某个应用程序所需的所有配置文件、依赖项、系统工具、库和源代码。它们不同于主机和主机上运行的任何其他实例。尽管它们有所不同,但虚拟机和容器是相当等价的。

执行 Docker 映像时,它会创建一个隔离的安全存储库。Docker 容器可以启动、停止、操作和删除。

它是一个 Docker 镜像实例。同一个 Docker 镜像可用于构建无限数量的 Docker 容器。Docker 容器是您的生产应用程序(例如数据库或任何资源)将运行的地方。Docker 镜像是一个文件集合,构成了在任何主机上作为独立单元执行 Docker 容器所必需的操作系统的一个微小组件。

如何使用 Dockerfile 创建 Docker 镜像和 Docker 容器

首先,您应该创建一个目录来保存您生成的所有 Docker 映像。

使用以下命令,我们将创建一个名为“Simplidocker”的目录。

mkdir simplidocker

将 Docker 映像放在该目录中,然后在其中创建一个新的空文件 (Dockerfile):

touch Dockerfile

使用编辑器打开文件。在本例中,我们使用 vi 打开文件。

vi Dockerfile

然后,包括以下信息:

``` FROM ubuntu

MAINTAINER simpli ```

apt-get update应该运行。

CMD [“echo”, “Welcome to Simplidocker”]

  1. 保存并关闭文件。

这就是您的流程的显示方式。

图片来自 JFROG

  • 制作一个 Dockerfile 并包含创建 Docker 映像的说明。
  • 运行 docker build 命令来构建你的 docker 镜像。
  • 使用 docker run 命令创建容器,现在 docker 镜像已经可以使用了。

结论

使用容器和图像,用户可以指定应用程序依赖项和配置,以及机器运行该程序所需的一切。然而,容器和图片的生命周期并不相同。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

youtian.L

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

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

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

打赏作者

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

抵扣说明:

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

余额充值