第一章 初识Docker
目录
Docker官方地址:
Docker: Accelerated Container Application Development
Docker仓库地址:
一、Docker概述
1.1. Docker是什么
Docker是由 Docker公司于2013年推出的开源项目,其技术基础主要来自于 Linux 容器(LXC)等技术,是一个开源的应用容器引擎,它可以让开发者将应用程序及其依赖项打包到一个可移植的容器中,并在不同的环境中进行部署和运行。 Docker的核心理念是“一次构建,随处运行”,提供了一种轻量级、可移植、可扩展的解决方案,使得应用程序能够在不同的操作系统和云平台上高效运行。
更通俗地讲,我们可以把Docker理解为一个JavaWeb项目的集装箱,它把我们已安装部署好的Web应用服务程序、关系/非关系型数据库、Tomcat服务器、Nacos配置中心、MQ等等的一个完整的生产/开发/测试环境统一打包构建好后(打包成镜像),随处运行在各个Linux环境下。
1.2. Docker 出现的主要背景
- 虚拟化技术的发展:早期服务器虚拟化技术如 KVM、Xen 等用于提供硬件级别的隔离,但在资源管理和隔离方面存在不足。
- 容器化技术的发展:容器化技术如 LXC(Linux Container),它提供了轻量级的隔离,能够运行多个隔离的应用,并且共享同一套操作系统。
- 自动化部署与分发:Docker 容器可以打包应用及其依赖,实现快速部署和分发。
- 资源隔离与利用:Docker 容器之间共享宿主机的内核,减少了资源的使用,提高了效率。
- DevOps 流程:Docker 容器使得持续集成和持续部署(CI/CD)流程更为高效和标准化。
- Docker 出现的背景是传统虚拟化技术与容器化技术的结合,以及对自动化部署、分发、和操作的需求推动的产物。
二、Docker与传统虚拟化技术对比
Docker 和传统虚拟化技术(如 KVM、VMware、Hyper-V 等)的主要区别在于它们的架构和应用场景。
1. 架构差异
传统虚拟化技术通常在宿主机上安装一个虚拟机管理程序,然后在其上创建完整的虚拟机。每个虚拟机都包含一个完整的操作系统和必要的依赖。
Docker 利用 Linux 内核的特性,如 cgroups 和 namespaces 来隔离进程,并且共享宿主机的操作系统内核。它使用容器引擎(如 Docker 引擎)来管理容器的生命周期。
2. 资源使用
传统虚拟化通常需要更多资源来运行一个虚拟机,包括额外的开销和额外的磁盘空间。
Docker 容器则更加轻量级,它们共享宿主机的操作系统内核,并且只需要几 MB 的额外空间来启动。
3. 快速部署
使用虚拟机,通常需要数分钟时间来准备一个新的虚拟机实例,尤其是在从零开始创建一个新的虚拟机镜像时。
Docker 容器可以在毫秒级启动多个相同的实例,因为它们共享操作系统内核和库文件。
4. 更新迭代
虚拟机通常需要一个完整的系统镜像来进行升级。
Docker 容器可以通过更新其镜像来快速迭代,因为容器镜像可以被拆分成多个层,只有变更的层会被传输或更新。
5. 隔离级别
传统虚拟化提供了更为严格的隔离,一个虚拟机出现问题不会影响其他虚拟机或宿主机。
Docker 容器提供的隔离级别较低,一个容器中的应用可以影响同一宿主机上的其他容器。
6. 兼容性和迁移
虚拟机通常与宿主机的硬件和操作系统无关,因此可以在不同的宿主机之间迁移。
Docker 容器则通常与其宿主机紧密耦合,尽管可以使用 Dockerfile 和容器镜像来跨宿主机迁移应用。
7. 成本
虚拟化通常需要更多的硬件资源和许可证成本。
Docker 对硬件要求较低,且使用开源软件,可以大幅节约成本。
总结:Docker 提供了轻量级的隔离,快速启动,通过使用Docker,开发者可以更加方便地持续构建、部署和管理应用程序,提高开发和运维效率,实现应用程序的快速交付和可移植性,非常适合现代应用的部署和管理。此外,Docker还提供了丰富的网络和存储功能,使得容器可以在不同的网络中进行通信,并持久化存储数据。而传统虚拟化技术提供了更为严格的隔离和更好的兼容性,适合需要更高安全性的关键任务应用。
三、Docker的主要组成部分
-
镜像(Image):镜像是一个只读的模板,包含了运行应用程序所需的所有文件系统、库和依赖项。镜像可以看作是一个软件包,包含了应用程序的代码、运行环境和配置信息。通过使用Docker镜像,开发者可以快速、可靠地构建和部署应用程序。比如Linux镜像、MySQL镜像、Tomcat镜像。
-
容器(Container):容器是镜像的运行实例,是一个独立、可执行的软件包,包含了运行应用程序所需的所有内容,包括代码、运行时环境、系统工具、系统库等。容器可以被快速启动、停止、删除和迁移,提供了一种轻量级、隔离的运行环境。一个被运行的Linux的Docker镜像,进入其内部(即运行的容器),我们可以认为它是一个精简的Linux系统。
-
仓库(Repository):仓库是用来存储和管理Docker镜像的地方。Docker仓库可以分为公共仓库和私有仓库。公共仓库如Docker Hub提供了大量的官方和社区维护的镜像供用户下载使用。私有仓库则用于存储和分享自己的镜像,适用于企业内部的应用程序部署和管理。
四、Docker安装
翻看往期章节,了解一下内容:
1. 查看Docker的安装
2. 配置镜像仓库地址
3. 拉取/查看本地镜像
4. 启动运行镜像
文章地址如下:
五、Docker命令
- 镜像命令
- 容器命令
- 操作命令
Docker常用命令图
具体的Docker命令我会在后续章节一一讲解说明。
六、需充分学习掌握的Docker其他相关知识点
下面这些内容会在后续章节进行一一讲解,以此来巩固对Docker的全面认知和实操,运用于实际工作中。
1. 容器数据卷
2. DockerFile
3. Docker网络原理
4. Docker Compose
5. Docker Swarm
6. CI\CD Jenkins
Docker底层的结构图
原文地址:https://blog.csdn.net/qushaming/article/details/142503707
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!