Docker实践(4) – 使用socat查看Docker API流量详情
docker命令可能会偶尔地无法正常工作。大多数情况下是命令行参数没有输入正确,不过也有偶尔一些是严重的配置问题,如Docker二进制文件过期了。为了诊断此问题,查看你正在连接的docker daemon的数据流可能会有所帮助。
问题
你想用docker命令来调度一个问题。
方法
使用流量探测器来检查API调用并输出调用详情。
讨论
在此技术中你将在你的请求与服务器socket之间安放一个Unix域套接字代理来查看传过来了什么东西。现在需要root或sudo权限来做这件事。
要创建这个代理,需要用到socat命令。
socat是一个允许你在几乎任何类型的两个数据通道之间中继数据。
$ sudo socat -v UNIX-LISTEN:/tmp/dockerapi.sock UNIX-CONNECT:/var/run/docker.sock &
在这个命令中-v参数输出数据流的可读格式。UNIX-LISTEN让socat监听一个域套接字,UNIX-CONNECT让socat连接到Docker的域套接字。’&’使命令后台运行。
你的请求到docker的路由可以看下面。
所有的流量都将被socat看到并记录到你的终端。
一个简单的docker命令输出类似如下:
socat不仅仅是用来调试docker,也可以用来调试任何的网络服务。
版权声明:Docker实践(4) – 使用socat查看Docker API流量详情是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。