docker 入门

1. Docker架构:

docker采用了client-server的模式,docker客户端向终端用户提供CLI,同时与docker daemon之间采用socket或者RESTFUL API来进行通信。基本组件包括: docker image, docker container, docker respository

docker 镜像:

    docker镜像本质上是很多文件层layer,docker采用UnionFS来将这些layer组装起来,成为镜像。比如一个ubuntu镜像,当你将某个服务升级,docker会对应创建一个新的层,这个新的层包含了升级的服务的信息,所以,很多情况下,并不需要重新发布整个镜像,只需要升级对应的层就可以。这也是docker之所以强大的地方,解决了镜像的快速分发。

docker responsitory:

    docker 仓库是用来保存镜像的地方,共有仓库就是docker hub,里面包含各种各样的镜像。

docker container:

    docker 容器,包含了某个应用所需要的的基础环境,也成为docker运行时。

2. docker 原理

namespace:

    pid namespace: 不同的docker容器,可以认为是运行在不同的进程namespace中,各个namespace之间的PID 可以相同。每个namespace中都有PID=1的进程。由于 namespace允许嵌套,父namespace会影响到子namespace,同样的父namespce的/proc中也可以看到子namespace的进程,但是PID会有所不同

    mnt namespace:不同container看到的目录结构会所有不同,这样每个container,每个namespace中看到的目录结构也就不同

    uts namespace: 容器之间可以拥有自己的hostname和domain name等

    user namespace: container之间可以拥有自己的user id和group id。



end

posted @ 2021-01-15 23:14  一个门外汉  阅读(52)  评论(0编辑  收藏  举报