本帖最后由 Kane4828 于 2022-10-13 00:58 编辑
Docker是什么?Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 ex: 前端Vue需要build打包在nginx环境部署; 后端Java需要java -jar app.jar运行; 前后端需要安装不同的环境去部署运行。 这个时候我们可以通过docker容器统一的环境去一键运行发布这些应用docker run ...。
Docker 包括三个基本概念: 镜像(Image):一个特殊文件系统。ex: ubuntu系统。 容器(Container):容器是镜像运行时的实体。容器可以被创建、启动、停止、删除等。
public(共有仓库):免费上传、下载公开的镜像。 private(私有仓库):需要认证才能上传、下载镜像。
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。 架构Docker为什么出现 环境配置是十分的麻烦,每一个机器都要部署环境(集群Redis、ES、Hadoop)!费事费力 发布一个项目(jar+(Redis MySQL jdk ES)),项目能不能都带上环境安装打包! 之前在服务器配置一个应用的环境Redis、MySQL、jdk、ES、Hadoop,配置超麻烦了,不能够跨平台,windins,最后发布到Linux! Docker通过隔离机制,可以将服务器利用到极致。
Docker能干嘛 之前的虚拟技术特点 虚拟技术特点: 比较Docker和虚拟机技术的不同
传统虚拟机,虚拟出一个硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件。 容器内的应用直接运行在 宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件。 每个容器间是互相隔离。 DevOps(开发、运维) 应用更快速的交付和部署 传统:一键帮助文档,安装程序 Docker:打包镜像发布测试,一键运行 更便捷的审计和扩缩容 使用了Docker之后,我们部署应用就和搭积木一样! 项目打包为一个镜像,扩展,服务器A!服务器 B 更简单的系统运维 在容器化之后,我们的开发没测试环境都是高度一致的。
|