LoginSignup
10
3

More than 3 years have passed since last update.

Docker Toolbox 環境で npm install が reason: getaddrinfo EAI_AGAIN registry.npmjs.org により失敗する。

Last updated at Posted at 2020-04-12

事象

Docker Toolbox 環境において、npm installが以下の理由により失敗する場合があります。

npm ERR! code EAI_AGAIN
npm ERR! errno EAI_AGAIN
npm ERR! request to https://registry.npmjs.org/vue-router failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org   

原因

わたしの環境だと、原因はregistry.npmjs.orgの名前解決に失敗していることでした。 とりたてて設定などをしていない場合、docker machine はホスト側(すなわちWindows)に名前解決を依頼します。そこで、ホスト側でnslookupを行ったところ、自分のマシンが利用しているDNSサーバにはregistry.npmjs.orgが登録されていませんでした。

C:\>nslookup registry.npmjs.org
サーバー:  ntt.setup
Address:  2408:211:605:600:5a52:8aff:fe66:f4a5

*** ntt.setup が registry.npmjs.org を見つけられません: Query refused

対策

対策方法はいろいろあると思いますが、「Dockerが利用するDNSサーバをregistry.npmjs.orgの名前解決ができるGoogle Public DNS (8.8.8.8)にする」ことで問題が解消しました。

  1. %DOCKER_CERT_PATH%\config.jsonHostOptions > EngineOptions > Dnsを編集し、DNSサーバとして8.8.8.8を登録する。
  2. Docker Machineを再起動する (docker-machine restart)
"DriverName": "virtualbox",
"HostOptions": {
    "Driver": "",
    "Memory": 0,
    "Disk": 0,
    "EngineOptions": {
        "ArbitraryFlags": [],
        "Dns": [
            "8.8.8.8"
        ],

環境情報

  • Microsoft Windows [Version 10.0.18362.720]
  • docker-machine.exe version 0.16.1, build cce350d7

Dockerのバージョンは次の通り:

Client:
 API version:       1.40
 Go version:        go1.12.7
 Git commit:        74b1e89e8a
 Built:             Wed Jul 31 15:18:18 2019
 OS/Arch:           windows/amd64
 Experimental:      false

Server: Docker Engine - Community
  Version:          19.03.5
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.12
  Git commit:       633a0ea838
  Built:            Wed Nov 13 07:28:45 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.10
 runc:
  Version:          1.0.0-rc8+dev
  GitCommit:        3e425f80a8c931f88e6d94a8c831b9d5aa481657
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
10
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
3