原文地址,使用效果更佳!
Docker - 简介 | CoderMast编程桅杆https://www.codermast.com/dev-tools/docker/docker-introduce.html
Docker是什么?
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。
Docker能干什么?
Docker是一种容器化平台,可用于打包、分发和运行应用程序及其依赖项。以下是Docker的一些主要功能和用途:
-
容器化应用程序: Docker允许开发人员将应用程序及其所有依赖项打包到一个称为容器的独立单元中。这包括代码、运行时、系统工具、系统库等。容器可以在任何支持Docker的环境中运行,而不受环境差异的影响。
-
跨平台性: Docker容器可以在不同的操作系统和云平台上运行,提供了更强大的跨平台性。无论是在开发、测试还是生产环境,都可以使用相同的容器。
-
轻量级: Docker容器共享宿主操作系统的内核,因此它们相比于传统的虚拟机更加轻量级。这使得容器的启动速度更快,占用更少的系统资源。
-
版本控制: Docker容器的镜像可以被版本控制,允许开发人员和运维团队轻松地追踪和回滚应用程序的版本。
-
快速部署: Docker容器可以快速启动、停止和重新启动,提高了应用程序的部署速度。这对于微服务架构和持续集成/持续部署 (CI/CD) 策略非常有用。
-
隔离性: Docker容器提供了进程级别的隔离,使得应用程序之间相互独立。这有助于避免由于一个应用程序的问题导致整个系统崩溃。
-
资源优化: 多个Docker容器可以在同一台主机上并发运行,共享主机的资源。Docker通过优化资源使用,提高了系统的效率。
-
生态系统: Docker拥有丰富的生态系统,包括Docker Hub,其中存储了大量的公共和私有Docker镜像,使得开发人员可以轻松共享和获取镜像。
总体而言,Docker通过容器化技术提供了一种便捷、灵活且高效的方式来开发、打包和部署应用程序。
Docker和普通虚拟机的区别
可以理解为普通虚拟机是在宿主机的物理环境上,将操作系统进行虚拟化,类似于提供一个整体的虚拟环境,你可以在这个环境内干任何想干的事,而 Docker 在宿主机的基础上,仅仅只虚拟化所指定的依赖项。
虚拟机是在物理硬件层面对资源的隔离,而 Docker 是在操作系统的层面对所使用应用的隔离。
故 Docker 在性能上大大高于普通虚拟机。
虚拟机 | Docker | |
---|---|---|
隔离程度 | 隔离操作系统 | 隔离所需依赖 |
资源利用率 | 低 | 高 |
运行效率 | 差 | 好 |
成本 | 高 | 低 |
学习Docker之前,需要什么基础
在学习 Docker 之前,你需要掌握一些常用的 Linux 操作指令,至少认识一些常见的命令,能读懂即可。