使用Charles捕获docker client和docker daemon之间的HTTP数据
一、准备环境
为了模拟真实的环境,准备了三个节点
-
docker daemon:
192.168.0.19 -
charles
: 192.168.0.11 -
docker client:
192.168.0.20
二、Docker Daemon
- 启动docker daemon
systemctl start daemon
- 开放端口
iptables -I INPUT -p tcp --dport 2375 -j ACCEPT
三、Charles配置
启动Charles,修改proxy settings
,监听8080端口,同时关闭https代理
四、Docker Client
- 设置环境变量
export DOCKER_HOST=192.168.0.19 export HTTP_PROXY=http://192.168.0.11:8080
- 启动一个容器
docker images docker run -itd ubuntu /bin/bash
五、Charles查看捕获的数据
image.png刚才我们执行了两个命令,每次都会触发执行_ping
接口的调用。另外,docker run
实际上调用了三个接口,首先是创建容器,其次是启动容器,第三个接口是等待响应。
使用这种方法,就可以很容易把docker执行的命令转换为Remote API调用。
网友评论