介绍
在linux上通过命令安装docker,其实是安装了 server 和 client,是cs架构,只是安装时感觉不到
通信方式
本地 Unix socket,用于 本地 client和server通信,linux通用
fd 文件描述符,用于 本地 client和server通信,Ubuntu默认方式
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)
用户发送命令给Docker client,如:
docker pull、docker runDocker client 转发命令给宿主机上的 Docker服务端(守护进程)
Docker服务端(守护进程)接收执行命令,返回命令执行结果
Docker服务端(守护进程)负责管理宿主机上的各个容器。
第三方client
用户在第三方客户端上操作,如:idea
第三方客户端调用 remote-api,remote-api是 restful api
Docker服务端(守护进程)接收执行命令,返回命令执行结果
Docker服务端(守护进程)负责管理宿主机上的各个容器。
感谢:
https://www.cnblogs.com/lexiaofei/p/6368113.html
https://blog.csdn.net/jerry010101/article/details/85817893
