Docker依赖于Linux内核特性
Namespace(资源隔离)Cgroups(资源管理/资源分配)联合文件系统(这个不是Linux内核特性)基于上面三种技术组合做出来docker
Docker基本组成
Docker Client (客户端)
Docker images (镜像)
Docker Registry (镜像仓库)
Docker Container (容器)
Docker Daemon (守护进程)
Docker应用场景
应用程序打包和开发
应用程序隔离
持续集成
部署微服务
快速搭建测试环境
提供PaaS产品(平台即服务)
镜像是什么?
一个分层存储的文件
一个软件的环境
一个镜像可以创建N个容器
一个标准化的交付
一个不包含linux内核而又精简的liunx操作系统
镜像与容器的联系
容器其实是在镜像的最上面加了一层读写层,在运行容器里文件改动时, 会先从镜像里要写的文件复制到容器自己的文件系统中(读写层)。 如果容器删除了,最上面的读写层也就删除了,改动也就丢失了。所以无论多少个容器共享一个镜像,所做的写操作都是从镜像的文件系统中复制过来操作的,并不会修改镜像的源文件,这种方式提高磁盘利用率。 若想持久化这些改动,可以通过docker commit 将容器保存成一个新镜像。
• 一个镜像创建多个容器
• 镜像增量式存储
• 创建的容器里面修改不会影响到镜像