Docker容器玩转大数据

Docker 的概念和理解

2020-02-06  本文已影响0人  AlienPaul

Docker 容器和虚拟机的区别

Docker联合文件系统AUFS

AUFS全称为Another Union File System。是一种联合文件系统。它可以把不同物理位置的文件合并mount到同一个目录。

Docker镜像为分层结构,任何对镜像的修改都是创建一个新层,新层中保存了镜像的修改内容。最后,将这个新层,连同之前所有的分层一起,保存为新的镜像。

AUFS将这些层挂载到同一个目的地,于是在使用Docker时候,我们看到的是这些分层合并后的结果。

不建议自己创建的Docker镜像存在过多不必要的分层。镜像最多为127层,超过这个层数为会出现问题。过多的分层会占用过多的存储空间,减慢镜像加载的速度。

Docker如何隔离资源

使用cgroup限制容器资源的使用。
使用内核的namespace进行运行环境的隔离。

Docker的相关概念

Image

类似于虚拟机的快照。容器中运行时需要的文件都需要储存在Image中。运行时Docker会读取所有层的内容生成一个文件系统,同时在最上层创建一个可写层。在运行时这个可写层可以保存数据,但是停止运行的时,这个可写层的内容会被销毁。每次从Image启动一个container都是一个“干净”的运行环境。

Container

Container是Docker的运行实例。可以从一个Image运行产生多个Docker container(这些container之间没有任何关系)。Container是可以读写的,但是任何修改的内容都是临时的,不会保存在Image中。

Network

默认来说即便是同一个Docker Daemon下运行的container之间的网络也是互相隔离的。用户可以创建一个或多个network,并分配给container。通过这种方式可以控制哪些container之间的网络是互通的。

Volume

Volume是Docker的数据卷。可以持久化保存container中生成的数据。即便是container被销毁有重建,volume中的数据也不会丢失。

Dockerfile

Dockerfile用于创建Docker Image。Dockerfile描述了Image文件构建的步骤,内容包含基于哪个Image,构建时需要执行什么命令,以及启动container时候的入口命令等。

上一篇 下一篇

猜你喜欢

热点阅读