学习内容:linux
Docker客户端和服务端的通信方式:client和自定义程序docker
Docker客户端和服务端的链接方式:socketjson
演示Docker客户端和服务端之间用remote-api通信:nc -U /var/run/docker.sockapi
一、Docker客户端和服务端的链接方式app
方式一:client 和 demaonsocket
User <--> Docker客户端 <--> Docker服务端(守护进程)tcp
User发送命令给Docker客户端,如:docker pull、docker run学习
Docker客户端转发命令给宿主机上的Docker守护进程spa
Docker守护进程接收执行命令,返回命令执行结果unix
Docker服务端(守护进程)负责管理宿主机上的各个容器。
方式二:自定义程序和 服务端
User <--> 自定义程序 <--> Docker服务端(守护进程)
自定义程序调用remote-api,remote-api是 rest风格的api
https://docks.docker.com/reference/api/docker_remote_api
二、Docker客户端和守护进程经过Socket链接,能够远程或本地链接
在服务端,查看是否启动了docker的守护进程
ps -ef | grep docker
root 1526 1 9 17:34 ? 00:00:99 /usr/bin/docker -d
docker version
三、经过linux的nc命令演示remote-api的使用
其中,
-U 指明使用socket
/var/run/docker.sock 指明 socket 地址
info是个remote-pi
nc -U /var/run/docker.sock
GET /info HTTP/1.1
返回信息
HTTP/1.1 200 OK
Content-Type:application/json
Job-Name:info
Date:Tue,14 Apr 2015 09:38:28 GMT
Content-Length:765
JSON串格式的返回内容