docker 架构
docker 整体是CS架构,命令行就是client的一种。
Dockerd 是一个非常重要的后台进程,它负责响应并处理Docker 客户端的请求,然后转化为 Docker 的具体操作
runc
一个用来运行容器的轻量级工具
dockerd
管理容器的守护进程,负责接收client请求,处理任务并返回结果
有三种方式接收请求
-
通过 unix 套接字与服务端通信,配置的格式为:unix://socket_path。默认的 dockerd 生成的 socket文件存放在 /var/run/docker.sock,此文件只能是 root 用户才能访问,这也是为什么刚安装完 Docker 后只能root 来进行访问操作
-
采用 TCP 的方式与服务端通信,配置格式为:tcp://host:por,为了保证安全,通常还需要使用TLS认证
-
通过 fd 文件描述符的方式,配置格式为:fd://这种格式一般用于 systemd 管理的系统中