Docker基础概念
一、什么是Docker?
Docker 是一个基于Go语言实现的开源应用容器项目,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux机器上,也可以实现虚拟化。Docker的构想是要实现对应用组件级别的“一次封装、到处运行”,这里的应用组件,既可以是一个Web应用、一个编译环境,也可以是一套数据库平台服务,甚至是一个操作系统或集群。
Docker的诞生在Linxu容器(LXC)之上的。在LXC的基础上,Docker进一步优化了容器的使用体验。Docker提供了各种容器管理工具,让用户无需关注底层的操作,更加简明地管理和使用容器。
二、为什么使用Docker?
1、更高效地利用系统资源
Docker容器不需要进行硬件虚拟化,没有虚拟机管理应用和虚拟机操作系统的开销,而是直接复用本机的操作系统,对系统资源的利用更高效。无论是应用执行速度、内存损耗或者文件存储速度,都要比传统虚拟机技术更高 效。
2、轻松地应用迁移
在云时代,开发者创建的应用必须要能够很方便地在网络上传播,也就是必须脱离底层物理硬件的限制。以传统的方式进行应用迁移时,必须保证新宿主机与原来的机器环境一致,就需要搭建环境、部署项目、调试等一系列操作,费时费力。而Docker通过容器来打包应用、使应用和机器环境解耦,迁移的时候只需要在新的服务器上启动容器即可。
3、更快的启动时间
传统的虚拟机技术启动应用服务往往需要数分钟,而 Docker 容器应用,由于直接运行于宿主 内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。大大的节约 了开发、测试、部署的时间。
4、一致的运行环境
使用Docker,开发人员可以使用镜像来快速构建一套标准的开发环境;而测试、生产环境完全可以复用开发环境,达到一致的运行环境,减少因环境不一致产生的Bug因素。Docker可以快速创建、删除容器,实现快速迭代,节约开发、测试、部署的的大量时间。
5、更轻松地维护和扩展
使用Dockerfile,只需要小小的配置修改,就可以替代大量的更新操作。而且使用Dockerfile使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像。
三、Docker的三大核心概念
1、镜像
Docker镜像是一个类似于虚拟机镜像,可以将它理解为一个只读的模板,它是创建Docker容器的基础。通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像。
2、容器
Docker容器是镜像的一个运行实例,镜像是只读的,容器在镜像的最上层创建了一个可写层。Docker容器类似于一个轻量级的沙盒,Docker利用容器来运行和隔离应用。一个Docker容器中只有运行在容器中的应用(进程)和其必须依赖的运行时环境。
3、仓库
Docker仓库类似于代码仓库,是Docker集中存放镜像文件的场所。
有时候容易把Docker仓库和注册服务器混淆。实际上注册服务器是存放Dokcer仓库的具体服务器,一个注册服务器下可以有多个仓库,一个仓库下面可以有多个镜像。例如,registry.hub.docker.com是注册服务器地址,ubuntu是仓库名,18.04是仓库下面具体的一个镜像。
后记:
本篇内容只是笔者在学习Docker时的笔记整理,内容简短,且没有三大核心概念其命令的介绍。见者勿怪。