Docker的简单认知

Docker images: docker image是一个只读打模板,用来创建Docker 容器

Docker Registers 互联网上存储images的地方

Docker containers: docker 容器类似一个目录,包括需要运行application需要打一切。每个容器从docker image创建。docker容器可以run,stopped,moved和deleted

每一个image由一系列layers构成,Docker使用union file systems将这些layers组成一个单独打image。

$ sudo docker run -i -t ubuntu /bin/bash

执行上述命令会发生如下操作:

  1. 拉取ubuntu image:Docker首先检查ubuntu image是否在本地存在,如果不存在,从Docker Hub上下载.如果存在,Docker使用它作为新的容器

  2. 创建一个新的container: Docker使用image创建一个container

  3. 分配一个 filesystem和挂载一个read-write layer:在文件系统中创建container,在image上添加一个read-write层

  4. 分配一个network/bridge接口:创建一个网络接口,允许Docker容器与本地host通信

  5. 设置IP

  6. 运行我们指定打命令

  7. 捕捉用户程序打输出

底层技术

Namespaces(命名空间)

Docker利用namespace技术的优势,提供隔离打workspace,我们称之为container。container运行在自己的命名空间中,不能访问外部

Control groups

Docker使用另一个称为cgroups或control groups的技术。让一个application隔离运行打关键是让它使用独立的资源。Control groups允许Docker在containers之间分享可用打硬件资源,如果必须,可以设置限制和约束用来限制硬件资源的使用

Union file systems

Container format

Docker将这些组件组成一个包装器,我们称之为container format。默认的container format是libcontainer.Docker也支持传统的Linux容器(LXC)。未来Docker将支持其它container format

原文地址:https://www.cnblogs.com/goodlucklzq/p/4542733.html