前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DockerFile,Docker Image和Docker Container之间的不同

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

作者头像
用户4235284
发布2023-10-14 16:07:02
4390
发布2023-10-14 16:07:02
举报
文章被收录于专栏:后端学习之道

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 如下所示。

代码语言:javascript
复制
**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的位置开始。

代码语言:javascript
复制
docker build [OPTIONS] PATH | URL | -

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

代码语言:javascript
复制
Docker build [location of your Dockerfile]

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

代码语言:javascript
复制
docker build -t simpli image

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

代码语言:javascript
复制
docker images

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

Docker Container

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

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

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

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

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

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

代码语言:javascript
复制
mkdir simplidocker

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

代码语言:javascript
复制
touch Dockerfile

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

代码语言:javascript
复制
vi Dockerfile

然后,包括以下信息:

代码语言:javascript
复制
FROM ubuntu

MAINTAINER simpli

apt-get update应该运行。

代码语言:javascript
复制
CMD [“echo”, “Welcome to Simplidocker”]
  1. 保存并关闭文件。

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

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

结论

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Docker概述
  • 什么是 Dockerfile?
  • Docker Image
  • 如何构建 Docker 镜像
  • 使用 Dockerfile 构建 Docker 镜像
  • Docker Container
  • 如何使用 Dockerfile 创建 Docker 镜像和 Docker 容器
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档