docker命令可能会偶尔地无法正常工作。大多数情况下是命令行参数没有输入正确,不过也有偶尔一些是严重的配置问题,如Docker二进制文件过期了。为了诊断此问题,查看你正在连接的docker daemon的数据流可能会有所帮助。
你想用docker命令来调度一个问题。
使用流量探测器来检查API调用并输出调用详情。
在此技术中你将在你的请求与服务器socket之间安放一个Unix域套接字代理来查看传过来了什么东西。现在需要root或sudo权限来做这件事。
要创建这个代理,需要用到socat命令。
socat是一个允许你在几乎任何类型的两个数据通道之间中继数据。
在这个命令中-v参数输出数据流的可读格式。UNIX-LISTEN让socat监听一个域套接字,UNIX-CONNECT让socat连接到Docker的域套接字。’&’使命令后台运行。
你的请求到docker的路由可以看下面。
所有的流量都将被socat看到并记录到你的终端。
一个简单的docker命令输出类似如下:
socat不仅仅是用来调试docker,也可以用来调试任何的网络服务。