tl;dr;
Docker Desktop for Windows から WSL2のUbuntu20.04環境上でのDockerに切り替えた際に結構ハマったのでその忘備録にメモ
/etc/resolv.conf に nameserver 8.8.8.8 を追記する
コンテナ環境内で npm install を使用したとき、
npm ERR! code EAI_AGAIN
npm ERR! syscall getaddrinfo
npm ERR! errno EAI_AGAIN
npm ERR! request to https://registry.npmjs.org/autoprefixer failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org
な感じでエラーが出た。
どうもDNS解決ができなくてハマっていたらしい。
原因は この記事 にあるように WSL環境のnameserver設定がおかしくなっていることがあるようだ。
対策として、/etc/resolv.conf に nameserver 8.8.8.8 を追記する
コンテナ環境のIPアドレスを参照しておく
コンテナ内のサーバーにアクセスしようとしてlocalhost:{port}でアクセスしようとしたら接続できなくてハマった。
原因は上のリンクにもある通り、WSL2に仮想ネットワークアドレスが割り振られるため。
WSL2のシェルで hostname -I などでIPアドレスを確認してlocalhostの代わりに使用する
ほかの方法としては、
未検証だがWSL2で起動したサーバーに外部の端末からアクセスする方法もあるようだ