问题描述
运行docker exec xx hostname
之后没有退出, 当按下ctrl+c才退出.
解决办法
Google关键字: docker exec not close
找到以下 ISSUE:
- Cannot exit from docker exec if a background job is running and it blocks some of docker commands
- Docker exec hangs on exit when stdout is open
回过头来看自己的项目, 在运行 docker exec xx ps
之后发现有额外的进程一直存在: ssl_client
这是由于我运行了docker exec xxx wget -O - https://xxx
, 也就是在容器中wget一个https网址, 也正是这个命令被阻塞了我才发现这个问题.
参考ISSUE推测造成的原因可能是: 有其他进程阻塞了, 会导致exec任何命令 比如docker exec xx ps
都会被阻塞.
不清楚这是Docker的特性还是Bug, 因为太难复现了: 在测试时 我每一次运行docker exec xx wget -O - https://xx
都不会错误阻塞.
解决办法是不要wget 一个https网站.
网友评论