Docker概念说明
Docker是什么
Docker是一个应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。
Docker功能介绍
「 容器化 」:Docker通过使用Linux容器技术,将应用程序及其依赖项打包到一个独立的容器中。容器是一个完全隔离的运行环境,包含了应用程序、运行时环境、系统工具和依赖库等。容器化可以实现应用程序的快速部署、可移植性和可重复性,减少了应用程序之间的冲突和依赖问题。
「 轻量级和快速启动 」:相比于虚拟机,Docker容器更加轻量级,因为它们共享主机操作系统的内核。这使得Docker容器的启动和停止速度非常快,可以在几秒钟内完成。此外,Docker还采用了分层文件系统的概念,可以实现镜像的共享和复用,进一步减少了存储空间的占用和网络传输的开销。
「可移植性和可扩展性 」:Docker容器可以在任何支持Docker的平台上运行,包括物理服务器、虚拟机、云服务器等。这意味着应用程序可以在不同的环境中保持一致的运行行为。此外,Docker还支持水平扩展,可以通过添加更多的容器实例来增加应用程序的处理能力,实现负载均衡和高可用性。
「管理和部署」:Docker提供了一套丰富的命令行工具和API,可以方便地管理和部署容器。通过Docker命令,可以创建、启动、停止、删除和监控容器,还可以构建和推送容器镜像到Docker仓库。此外,Docker还支持容器编排工具,如Docker Compose和Kubernetes,可以实现多个容器的协同工作和自动化管理。
Docker特性和工具
「Docker镜像」:Docker镜像是容器的基础,它包含了应用程序及其依赖项的只读文件系统。Docker镜像可以通过Dockerfile文件定义,并可以通过Docker命令构建、推送和拉取。
「Docker仓库」:Docker仓库是存储和分享Docker镜像的地方。官方的Docker仓库是Docker Hub,用户可以在其中找到各种常用的镜像。此外,用户还可以搭建自己的私有仓库,用于存储和管理自定义的镜像。
「Docker网络」:Docker提供了一套丰富的命令行工具和API,可以方便地管理和部署容器。通过Docker命令,可以创建、启动、停止、删除和监控容器,还可以构建和推送容器镜像到Docker仓库。此外,Docker还支持容器编排工具,如Docker Compose和Kubernetes,可以实现多个容器的协同工作和自动化管理。
「Docker数据管理」:Docker提供了多种网络模式,可以实现容器之间的通信和与外部网络的连接。默认情况下,Docker使用桥接网络模式,每个容器都分配了一个唯一的IP地址。此外,Docker还支持主机网络模式、容器网络模式和Overlay网络模式等。
Docker核心组成
1.image镜像,构建容器(将应用程序所需的环境,打包为镜像文件)
2.Container容器,(应用程序就跑在当中)
3.镜像仓库,用户保存镜像文件,提供上传、下载镜像。好比github
4.Dockerfile,将部署项目的操作,写成一个部署脚本,并且该脚本还能够构建出镜像文件
Docker部署前后对比
部署前
每个虚拟机都是一个完整的操作系统,要分配系统资源,虚拟机多到一定程度时,操作系统本身资源也就会消耗殆尽,或者说必须要扩容
部署后
容器内的应用程序直接运行在宿主机的内核上,容器没有自己的内核,也没有对应的硬件进行虚拟,因此容器比起虚拟机更为轻便。
虚拟机与容器的对比
1.容器能够提供宿主机的性能,而虚拟机是分配宿主机硬件资源,性能较弱
2.同样配置的宿主机,最多可以启动10个虚拟机,但可以启动100+个容器
3.启动一个虚拟机得有一个完整的开机流程,花费之间较长,而启动一个容器只需要1S
4.虚拟机需要硬件CPU的虚拟化支持,而容器不需要
Docker的声明周期
Docker安装部署
参考一下博客:
https://blog.csdn.net/weixin_45490198/article/details/131494635?spm=1001.2014.3001.5502
Docker总结提升
Docker是一个功能强大的容器化平台,可以实现应用程序的快速部署、可移植性和可扩展性。它提供了容器化、轻量级和快速启动、管理和部署、可移植性和可扩展性等核心功能,同时还提供了镜像、仓库、网络和数据管理等辅助功能。Docker的出现极大地简化了应用程序的开发、测试和部署过程,提高了开发者的工作效率和应用程序的可靠性。