什么是容器?
原文: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 容器。
按照以下说明运行一个容器:
打开 Docker 桌面并选择顶部导航栏上的搜索字段。
在搜索输入框中指定
welcome-to-docker
,然后选择拉取按钮。镜像成功拉取后,选择运行按钮。
展开可选设置。
在容器名称中,指定
welcome-to-docker
。在主机端口中,指定
8080
。选择运行以启动你的容器。
恭喜你!你刚刚运行了你的第一个容器!🎉
查看你的容器
你可以通过转到 Docker 仪表板的容器视图来查看你所有的容器。
此容器运行一个网页服务器,显示一个简单的网站。当你处理更复杂的项目时,你将在不同的容器中运行不同的部分。例如,你可能会为前端、后端和数据库运行不同的容器。
访问前端
当你启动容器时,你将容器的一个端口暴露在你的机器上。可以将这看作是创建配置,让你能够通过容器的隔离环境进行连接。
对于这个容器,前端可以在端口 8080
上访问。要打开网站,请选择容器中的端口列中的链接,或者在浏览器中访问 http://localhost:8080。
探索你的容器
Docker 桌面允许你探索和与你的容器的不同方面进行交互。自己尝试一下。
前往 Docker 仪表板的容器视图。
选择你的容器。
选择文件标签以探索你的容器的隔离文件系统。
停止你的容器
docker/welcome-to-docker
容器将继续运行,直到你停止它。
前往 Docker 仪表板的容器视图。
定位你想停止的容器。
在操作列中选择停止操作。
额外资源
以下链接提供了关于容器的更多指导: