flipfrogの技術ブログ

主に技術的な記事を書きます

macOSのDocker Desktopで、No route to hostエラーを回避する方法

とても限定的な環境ですが、仕事で使っているIntel MacBook Pro上のDocker環境で表題のエラーが発生して困っていたのを、おそらく、解消できたのでメモします。

  • ハードウェア:13-inch, 2018, Four Thunderbolt 3 Ports
  • OS:13.0.1
  • Docker Desktop:4.15.0 (93002)

PHPのライブラリであるGuzzlehttpを使って、Box APIにファイルをチャンクに分割してアップロードする、Uploads (Chunked) APIを使い、並列度10以上でファイル転送していると頻繁に下記のエラーが発生しました。

cURL error 7: Failed to connect to api.box.com port 443: No route to host (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://api.box.com/2.0/folders/<folder_id>/items in <ソースのファイル名>

一度これが出ると、Docker Desktopをrestartするまで出続けるという現象が発生していました。

対処方法は、下記のスクリーンショットにある、Preferences > General > Use Virtualization frameworkのチェックを外します。これにより、前述のエラーが発生しなくなりました。

Docker DesktopのPreferences画面のスクリーンショット

この対処方法は、下記の記事を参考にしました。

https://forums.docker.com/t/192-168-65-1-connect-no-route-to-host/109264/6