docker服务器端(server)和客户端(client)通信方式

介绍

在linux上通过命令安装docker,其实是安装了 server 和 client,是cs架构,只是安装时感觉不到

通信方式

  1. 本地 Unix socket,用于 本地 client和server通信,linux通用

  2. fd 文件描述符,用于 本地 client和server通信,Ubuntu默认方式

  3. tcp监听端口,用于 远程 client和server通信,linux通用
    支持 http协议,restful api

通信方式组合使用

  • Ubuntu系统中,上面第2种和第3种可组合使用,此时本地和远程都可用。但第1种和第3种组合后,远程无法使用。亲测

  • centos系统中,上面第1种和第3种可组合使用,此时本地和远程都可用。但第2种和第3种组合后,远程无法使用。未亲测

配置位置

/lib/systemd/system/docker.service 文件,如下红框位置,当前系统是Ubuntu,所以是fd://

docker client

默认安装的是docker client,通过 本地 Unix socket 与server通信。(所以默认只能登录到linux才能操作docker)

  1. 用户发送命令给Docker client,如:docker pull、docker run

  2. Docker client 转发命令给宿主机上的 Docker服务端(守护进程)

  3. Docker服务端(守护进程)接收执行命令,返回命令执行结果

  4. Docker服务端(守护进程)负责管理宿主机上的各个容器。

第三方client

  1. 用户在第三方客户端上操作,如:idea

  2. 第三方客户端调用 remote-api,remote-api是 restful api

  3. Docker服务端(守护进程)接收执行命令,返回命令执行结果

  4. Docker服务端(守护进程)负责管理宿主机上的各个容器。

感谢:
https://www.cnblogs.com/lexiaofei/p/6368113.html
https://blog.csdn.net/jerry010101/article/details/85817893


原文出处:/show_1EF5tUtWTr4X.html