Docker 基础

docker 原生(Linux Containers,缩写为 LXC)只能跑在 Linux 上面,后来出现了boot2docker(只支持 virtualbox,包含linux 镜像和 vm 管理工具),最后被 docker-machine 取代。

Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。或者说,在正常进程的外面套了一个保护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。

// linux:Docker 需要用户具有 root 权限:sudo usermod -aG docker $USER


docker 是 C/S 架构,docker client 把命令发给 docker daemon (守护进程),然后 daemon 进行具体的操作。在执行 docker run 的过程中,docker 先会检查本地是否有相关镜像(只读模板),如果没有就会去 docker hub 进行检索并下载到本地。

docker 镜像是分层的容器运行时有个读写层,文件修改都在这个层内(Copy-On-Write:写时复制)