Skip to content

什么是容器?

原文:https://docs.docker.com/guides/docker-concepts/the-basics/what-is-a-container/

解释

想象你正在开发一个杀手级的网络应用,它有三个主要组成部分——一个 React 前端、一个 Python API 和一个 PostgreSQL 数据库。如果你想要开发这个项目,你需要安装 Node.js、Python 和 PostgreSQL。

你如何确保你安装的版本与你团队中的其他开发者、你的 CI/CD 系统或生产环境中使用的版本相同?

你如何确保你的应用所需的 Python(或 Node 或数据库)版本不受你机器上已有的版本的影响?你如何管理潜在的冲突?

容器的出现解决了这些问题!

什么是容器?简单来说,容器是你应用中每个组件的独立进程。每个组件——前端 React 应用、Python API 引擎和数据库——都在其自己的隔离环境中运行,完全与你机器上的其他所有内容隔离。

容器的优点是:

  • 自给自足。每个容器拥有运行所需的一切,不依赖主机上预安装的任何依赖。
  • 隔离。由于容器是在隔离中运行,它们对主机和其他容器的影响最小,增加了你的应用的安全性。
  • 独立。每个容器都是独立管理的。删除一个容器不会影响其他容器。
  • 可移植。容器可以在任何地方运行!在你的开发机器上运行的容器,无论在数据中心还是云端都能以同样的方式工作!

容器与虚拟机(VMs)的对比

不深入细节,一个 VM 是一个完整的操作系统,拥有自己的内核、硬件驱动程序、程序和应用程序。为了仅仅隔离单个应用程序而启动一个 VM,会有很多额外开销。

容器仅仅是一个带有所有必需文件的隔离进程。如果你运行多个容器,它们都共享同一个内核,允许你在较少的基础设施上运行更多的应用程序。

使用 VM 和容器结合

通常,你会看到容器和 VMs 一起使用。例如,在云环境中,配置的机器通常是 VMs。然而,与其配置一台机器来运行一个应用程序,不如配置一台带有容器运行时的 VM 来运行多个容器化应用程序,这样可以提高资源利用率并降低成本。

现在试试

在这个动手操作中,你将看到如何使用 Docker 桌面 GUI 运行一个 Docker 容器。

按照以下说明运行一个容器:

  1. 打开 Docker 桌面并选择顶部导航栏上的搜索字段。

  2. 在搜索输入框中指定 welcome-to-docker,然后选择拉取按钮。

    Docker仪表板的屏幕截图,显示搜索结果为welcome-to-docker Docker镜像

  3. 镜像成功拉取后,选择运行按钮。

  4. 展开可选设置

  5. 容器名称中,指定 welcome-to-docker

  6. 主机端口中,指定 8080

    Docker仪表板的屏幕截图,显示容器运行对话框中键入的welcome-to-docker作为容器名称和指定的端口号8080

  7. 选择运行以启动你的容器。

恭喜你!你刚刚运行了你的第一个容器!🎉

查看你的容器

你可以通过转到 Docker 仪表板的容器视图来查看你所有的容器。

Docker桌面GUI的容器视图的屏幕截图,显示在主机端口8080上运行的welcome-to-docker容器

此容器运行一个网页服务器,显示一个简单的网站。当你处理更复杂的项目时,你将在不同的容器中运行不同的部分。例如,你可能会为前端、后端和数据库运行不同的容器。

访问前端

当你启动容器时,你将容器的一个端口暴露在你的机器上。可以将这看作是创建配置,让你能够通过容器的隔离环境进行连接。

对于这个容器,前端可以在端口 8080 上访问。要打开网站,请选择容器中的端口列中的链接,或者在浏览器中访问 http://localhost:8080

从运行中的容器来的着陆页的屏幕截图

探索你的容器

Docker 桌面允许你探索和与你的容器的不同方面进行交互。自己尝试一下。

  1. 前往 Docker 仪表板的容器视图。

  2. 选择你的容器。

  3. 选择文件标签以探索你的容器的隔离文件系统。

    Docker仪表板的屏幕截图,显示运行中的容器内的文件和目录

停止你的容器

docker/welcome-to-docker容器将继续运行,直到你停止它。

  1. 前往 Docker 仪表板的容器视图。

  2. 定位你想停止的容器。

  3. 操作列中选择停止操作。

    Docker仪表板的屏幕截图,显示选中的欢迎容器并准备停止

额外资源

以下链接提供了关于容器的更多指导: