MeWrite Docs

Cannot connect to the Docker daemon

Dockerデーモンに接続できない場合に発生するエラー

概要

Cannot connect to the Docker daemon は、DockerクライアントがDockerデーモンに接続できない場合に発生するエラーです。Dockerが起動していない、権限の問題、ソケットファイルの問題などが原因です。

エラーメッセージ

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
Cannot connect to the Docker daemon at tcp://localhost:2375. Is the docker daemon running?

原因

  1. Dockerが起動していない: デーモンが停止している
  2. 権限の問題: docker グループに所属していない
  3. ソケットファイルの問題: ソケットが存在しないか権限がない
  4. Docker Desktop の問題: アプリが起動していない(macOS/Windows)
  5. WSL2 の問題: Docker Desktop と WSL2 の連携設定

解決策

1. Dockerサービスを起動

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# サービス状態を確認
sudo systemctl status docker

# サービスを起動
sudo systemctl start docker

# 自動起動を有効化
sudo systemctl enable docker

# ログを確認
sudo journalctl -u docker -f

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# docker グループを作成(通常はインストール時に作成される)
sudo groupadd docker

# 現在のユーザーを docker グループに追加
sudo usermod -aG docker $USER

# グループの変更を反映(ログアウト/ログインが必要な場合も)
newgrp docker

# 権限を確認
groups

# テスト
docker run hello-world

3. ソケットファイルの権限

1
2
3
4
5
6
7
8
# ソケットファイルの存在と権限を確認
ls -la /var/run/docker.sock

# 権限を修正(一時的な対処)
sudo chmod 666 /var/run/docker.sock

# より安全な方法(docker グループに追加)
sudo chown root:docker /var/run/docker.sock

4. Docker Desktop を起動(macOS/Windows)

1
2
3
4
5
6
7
8
9
# macOS
# Docker Desktop アプリを起動
# メニューバーでステータスを確認

# Docker Desktop が完全に起動するまで待機
docker info

# Docker Desktop の再起動
# メニューバー → Restart
1
2
3
4
5
6
7
8
# Windows (PowerShell)
# Docker Desktop アプリを起動

# Docker Desktop のサービスを再起動
Restart-Service docker

# WSL2 統合を確認
wsl --list --verbose

5. WSL2 での設定(Windows)

1
2
3
4
5
6
7
8
9
# WSL2 がインストールされているか確認
wsl --status

# WSL2 のバージョンを確認
wsl --list --verbose

# Docker Desktop の設定
# Settings → Resources → WSL Integration
# 使用するディストリビューションを有効化

6. DOCKER_HOST 環境変数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 環境変数を確認
echo $DOCKER_HOST

# デフォルト(ソケット)に戻す
unset DOCKER_HOST

# TCP接続を使用する場合
export DOCKER_HOST=tcp://localhost:2375

# リモートDockerホストに接続
export DOCKER_HOST=tcp://remote-host:2375

7. Docker コンテキストの確認

1
2
3
4
5
6
7
8
# 現在のコンテキストを確認
docker context ls

# デフォルトコンテキストを使用
docker context use default

# コンテキストを確認
docker context show

8. rootless Docker

1
2
3
4
5
6
7
8
9
# rootless Docker を使用している場合
# ユーザーのデーモンを起動
dockerd-rootless-setuptool.sh install

# ユーザーのDockerデーモンを起動
systemctl --user start docker

# 環境変数を設定
export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock

9. Docker Desktop のリセット(macOS/Windows)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# macOS - Docker Desktop をリセット
# Troubleshoot → Reset to factory defaults

# キャッシュとデータを削除
rm -rf ~/Library/Group\ Containers/group.com.docker/
rm -rf ~/Library/Containers/com.docker.docker/
rm -rf ~/.docker/

# 再インストール
brew uninstall docker
brew install --cask docker

Docker Compose での問題

1
2
3
4
5
6
# Docker Compose も同じソケットを使用
docker-compose up

# エラーが出る場合、Dockerの状態を確認
docker info
docker-compose version

CI/CD 環境での設定

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# GitHub Actions
jobs:
  build:
    runs-on: ubuntu-latest
    services:
      docker:
        image: docker:dind
        options: --privileged
    steps:
      - name: Set up Docker
        uses: docker/setup-buildx-action@v3

      - name: Check Docker
        run: docker info
1
2
3
4
5
6
7
8
9
# GitLab CI
build:
  image: docker:latest
  services:
    - docker:dind
  variables:
    DOCKER_HOST: tcp://docker:2375
  script:
    - docker info

デバッグのコツ

Dockerの状態確認

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Docker の詳細情報
docker info

# Docker のバージョン
docker version

# 実行中のコンテナ
docker ps

# すべてのコンテナ
docker ps -a

ログの確認

1
2
3
4
5
6
7
8
# Linux - systemd
sudo journalctl -u docker -f

# macOS - Docker Desktop
~/Library/Containers/com.docker.docker/Data/log/vm/

# Docker デーモンのログ
sudo dockerd --debug

プロセスの確認

1
2
3
4
5
# Docker プロセス
ps aux | grep docker

# ソケットを使用しているプロセス
sudo lsof /var/run/docker.sock

Docker の他のエラー

最終更新: 2025-12-08