個人PC(Mac)でdocker pullが途中で止まる原因を突き止める

Macのスペックなど

状況

個人PC(Mac)でdocker pullが途中で止まる

$ docker pull golang:latest
latest: Pulling from library/golang
1671565cc8df: Downloading [=============================================>     ]  50.37MB/55.01MB
3e94d13e55e7: Downloading [====================================>              ]  3.779MB/5.163MB
fa9c7528c685: Downloading [========================================>          ]  8.735MB/10.88MB
53ad072f9cd1: Waiting
dacb042d4b55: Waiting
60d5069f41a6: Waiting
bac5554425db: Waiting

golang:latest imageに限ったことではないようだ

$ docker pull redis
Using default tag: latest
latest: Pulling from library/redis
7a6db449b51b: Downloading [==============================================>    ]  29.14MB/31.38MB
05b1f5f3b2c0: Download complete
f0036f71a6fe: Downloading [============================================>      ]  1.268MB/1.411MB
cd7ddcecb993: Downloading [=================================>                 ]  6.454MB/9.559MB
8cfc9a467ed7: Waiting
2a9998409df9: Waiting

会社PCは自宅で普通にdocker pullできているので自宅のネットワークが原因ではないと思われる

その他試してみたこと

  • Docker for Mac再起動
  • Docker for Macの再インストール
  • Docker for Macが最新バージョン(4.11.1)だったのでバージョンを下げてみた
    • 3系まで下げたが状況は変わらず途中で止まる
  • Mac再起動
  • 感謝の正拳突き
  • Dockerfileを作成してFROM golang:latestを記述してdocker build .したらうまく行ったのでdocker pullのネットワークがなんかだめなのか?と疑ったがよくわからず
    • 最悪これでも回避できるかなと思ったけど流石に毎回こんな事するのは辛い…

コンソールアプリを使えばプロセスのログが見れるっぽい

support.apple.com

Mac標準のコンソールアプリでPCのログが見れることがわかったのでdockerプロセスのログを調べてみることにした。 Linuxでいうsyslog的な情報も見れるようだった。

PCにインストールしていた某セキュリティソフトがなんかやってそう

一旦某セキュリティソフトを終了させて再度docker pullを試したところ成功したので原因はセキュリティソフトであることが確定。

$ docker pull golang:latest
latest: Pulling from library/golang
1671565cc8df: Pull complete
3e94d13e55e7: Pull complete
fa9c7528c685: Pull complete
53ad072f9cd1: Pull complete
dacb042d4b55: Pull complete
60d5069f41a6: Pull complete
bac5554425db: Pull complete
Digest: sha256:d3f734e1f46ec36da8c1bce67cd48536138085289e24cfc8765f483c401b7d96
Status: Downloaded newer image for golang:latest
docker.io/library/golang:latest

原因がわかれば対処方法もわかるということで終わり。

追記

今回は対応しなかったがDockerの公式ドキュメントにもアンチウィルスソフトについての対応方法があった docs.docker.com