できない.dev

Docker build できない(Cannot connect to the Docker daemon)

Docker daemon が起動していない、または現ユーザーが docker グループに属していないと build/run の全てが失敗する。
OS別に確認手順が異なる。

公開: 更新:

要約

docker build 実行時に Cannot connect to the Docker daemon at unix:///var/run/docker.sockerror during connect が出る場合は daemon が起動していないか権限不足
OS別に確認すべき手順が異なる。

よくある原因

  1. daemon 未起動: Docker Desktop が落ちている/Linux で dockerd が止まっている
  2. 権限不足(Linux): docker.sock への RW 権限が無い(docker グループに未所属)
  3. DOCKER_HOST 不正: リモート Docker 用の環境変数が残っている
  4. WSL 連携 OFF(Windows): WSL ディストロから Docker が見えない

解決策

1. daemon 起動確認

# Linux
sudo systemctl status docker
sudo systemctl start docker
 
# macOS / Windows
# Docker Desktop アプリを起動。タスクトレイのクジラアイコンが安定するまで待つ

2. docker グループへ追加(Linux)

sudo usermod -aG docker $USER
# いったんログアウト → 再ログイン(newgrp docker でも可)
docker run --rm hello-world

3. DOCKER_HOST を確認

echo $DOCKER_HOST   # 空のはず。値が入っていれば unset
unset DOCKER_HOST

4. WSL 連携(Windows)

Docker Desktop → Settings → Resources → WSL Integration で対象ディストロを ON。

実行例

実際に上記の手順を GitHub Actions Runner(Ubuntu 24.04 / Docker 28.0.4)で動かすと、DOCKER_HOST に不正なソケットパス unix:///var/run/does-not-exist.sock が残った状態では終了コード 1 でビルドが失敗し、unset DOCKER_HOST を実行した直後の再ビルドでは終了コード 0 で正常完了することが確認できる。

$ docker build --progress=plain -t daemon-demo .
ERROR: failed to connect to the docker API at unix:///var/run/does-not-exist.sock; check if the path is correct and if the daemon is running: dial unix /var/run/does-not-exist.sock: connect: no such file or directory
build の終了コード: 1
$ echo $DOCKER_HOST
unix:///var/run/does-not-exist.sock
$ unset DOCKER_HOST
$ docker build --progress=plain -t daemon-demo .
#0 building with "default" instance using docker driver
 
#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 63B 0.0s done
#1 DONE 0.0s
 
#2 [auth] library/alpine:pull token for registry-1.docker.io
#2 DONE 0.0s
 
#3 [internal] load metadata for docker.io/library/alpine:3
#3 DONE 0.3s
 
#4 [internal] load .dockerignore
#4 transferring context: 2B done
#4 DONE 0.0s
 
#5 [1/2] FROM docker.io/library/alpine:3@sha256:28bd5fe8b56d1bd048e5babf5b10710ebe0bae67db86916198a6eec434943f8b
#5 resolve docker.io/library/alpine:3@sha256:28bd5fe8b56d1bd048e5babf5b10710ebe0bae67db86916198a6eec434943f8b done
#5 sha256:28bd5fe8b56d1bd048e5babf5b10710ebe0bae67db86916198a6eec434943f8b 9.22kB / 9.22kB done
#5 sha256:79ff19e9084a00eece421b2523fb93e22d730e2c0e525905de047e848e56d95f 1.02kB / 1.02kB done
#5 sha256:d529dd0c6e5597ac7e4a3e2dea65c3fcc6173f4cae713c409265c1dd9914a11b 611B / 611B done
#5 DONE 0.0s
 
#6 [2/2] RUN echo ok
#6 0.159 ok
#6 DONE 0.4s
 
#7 exporting to image
#7 exporting layers
#7 exporting layers 0.7s done
#7 writing image sha256:ccab1dda556402638cbdc98b9c59f0b7f461818649f2887347dd758c3b9087e3 done
#7 naming to docker.io/library/daemon-demo done
#7 DONE 0.7s
build の終了コード: 0(0 なら解消)

— 2026-08-06 時点の出力

この記事は役立ちましたか?