。Docker[50]也被称为 Docker Engine,采用了 C/S 体系架构,从架构设计上分为 Docker 客户端 Docker CLI 与 Docker 守护进程 Docker Daemon,Docker 客户端是提供给用户的命令行接口; Docker 守护进程负责构建、运行与分发 Docker 容器,是 C/S 体系架构中的 Server。 Docker Engine 的架构设计如图 3-20 所示。
Docker Client 通过 REST API 与 Docker Daemon 进行通信,Docker Daemon 提供两种方式供客户端连接:UNIX 域套接字与 TCP 端口监听,在 Docker 主机 中通过/etc/docker/daemon.json 文件来配置连接方式,如图 3-21 所示。
UNIX 域套接字是默认的通信方式,使用这种方式时会在本地目录中生成一 个文件/var/run/docker.sock,客户端进程与守护进程通过这个文件实现进程间通信, 因此 UNIX 域套接字仅用于本地的客户端访问。TCP 端口监听需要服务端开放某 个端口用于监听客户端请求,客户端通过 IP 和端口访问服务端。例如,在 Orderer 节点通过 TCP 端口监听方式连接 Peer 节点的 Docker Daemon,执行 docker ps 命 令,如图 3-22 所示。