首页 > 解决方案 > Docker stdin 读取 unix @->/var/run/docker.sock: 读取: 对等连接重置

问题描述

写入 docker stdin 会产生错误。

$ head -c 500000 /dev/zero | docker run --rm -i alpine:3.9 echo

read unix @->/var/run/docker.sock: read: connection reset by peer
$ echo $?
1

有没有什么办法解决这一问题?

标签: dockerstdin

解决方案


对于这个特定的实例,看起来这个错误是因为echo在读取任何标准输入之前退出(为什么会这样?)。这会导致套接字在传输过程中关闭。

这是一个误导性的错误消息/状态,但在这种情况下确实有意义。小于套接字缓冲区的有效负载可能会导致竞争条件,并且只会间歇性地失败,而不是总是失败,就像在这种情况下一样。


推荐阅读