問題描述
運行docker exec xx hostname
之后沒有退出, 當按下ctrl+c才退出.
解決辦法
Google關(guān)鍵字: 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
之后發(fā)現(xiàn)有額外的進程一直存在: ssl_client
這是由于我運行了docker exec xxx wget -O - https://xxx
, 也就是在容器中wget一個https網(wǎng)址, 也正是這個命令被阻塞了我才發(fā)現(xiàn)這個問題.
參考ISSUE推測造成的原因可能是: 有其他進程阻塞了, 會導(dǎo)致exec任何命令 比如docker exec xx ps
都會被阻塞.
不清楚這是Docker的特性還是Bug, 因為太難復(fù)現(xiàn)了: 在測試時 我每一次運行docker exec xx wget -O - https://xx
都不會錯誤阻塞.
解決辦法是不要wget 一個https網(wǎng)站.