Professional Documents
Culture Documents
md 2023/4/6
使用 Docker,开发人员可以在他或她的工作站上制作容器化应用程序,然后轻松地将容器部署到任何支持
Docker 的服务器。无需为服务器环境重新测试或调整容器,无论是在云端还是在本地。
此外,Docker 提供了软件共享和分发机制,允许开发人员和运营团队轻松共享和重用容器内容。这种分发机制
与跨机器的可移植性相结合,有助于解释 Docker 在运营团队和开发人员中的受欢迎程度。
Docker components
Docker既是一个开发工具,也是一个运行时环境。要了解Docker,首先要了解Docker容器映像的概念。容器总
是以映像(Image)开始,并被视为该映像的实例。映像是容器在运行时应该是什么的静态规范,包括容器内
的应用程序代码和运行时配置设置。 Docker 映像包含只读层,这意味着一旦创建了映像,它就永远不会被修
改。
1/5
Containers 101 Docker fundamentals.md 2023/4/6
当一个正在运行的容器被删除时,可写容器层也会被删除,不会持久化。保留更改的唯一方法是在删除容器之
前执行显式 docker commit 命令。当你执行一个 docker commit 命令时,正在运行的容器内容,包括可写
层,被写入一个新的容器映像并存储到磁盘中。这成为一个新的映像,不同于实例化容器的映像。
图 2 描述了映像和运行中的容器之间的区别。请注意,每个正在运行的容器都可以有不同的可写层。
2/5
Containers 101 Docker fundamentals.md 2023/4/6
3/5
Containers 101 Docker fundamentals.md 2023/4/6
图 3 描述了一个工作流,在该工作流中,用户构建映像并将其上传到Registry。其他用户可以从Registry中拉取
映像来制作生产容器并将它们部署到 Docker 主机,无论他们身在何处。
正如我们在上一节中所述,Docker 映像一旦创建就不会更改。从映像派生的运行容器有一个可写层,可以临时
存储运行时的变化。如果容器在删除之前使用 docker commit 提交,可写层中的更改将保存到一个与之前的
映像不同的新映像中。
为什么不变性很好?不可变的映像和容器导致不可变的基础设施,不可变的基础设施有许多传统系统无法实现
的有趣好处。这些好处包括:
4/5
Containers 101 Docker fundamentals.md 2023/4/6
最小化漂移。 为避免漂移,您可以定期主动刷新系统中的所有组件,以确保它们是最新版本。与传统
的、庞大的软件相比,使用封装较小系统组件的容器更容易实现这种做法。
Docker 已经在改变组织构建系统和提供服务的方式。它开始重塑我们对软件设计和软件交付经济学的思考方
式。在这些变化真正扎根之前,组织需要更好地了解如何管理 Docker 环境的安全性和策略。但这是另一篇文
章的主题。
5/5