ピックアップ

「Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?」のエラーになった件

Dockerの立ち上げに関しては、

  1. Dockerfileというファイルを作成する
  2. ビルドしてDockerイメージを作成する
  3. Dockerイメージからコンテナを作成する
  4. コンテナに接続してログインする

という手順を行って、

上記をやってみたあとに、

  • Dockerのイメージの確認
  • Dockerのコンテナの確認
  • Dockerのコンテナの停止と削除

などを行っていました。

この辺りは、

コマンドで実行したことがあるので、

その辺りは、

こちらを参考にしてください。

今回は、

dockerを立ち上げようとした時に

Cannot connect to the Docker daemon 
at unix:///var/run/docker.sock. 
Is the docker daemon running?

このようなエラーが発生。

今回の件を、

自分の備忘録として、

忘れないうちにメモを残しておきます。

エラー内容

実行処理としては、

docker ps

で確認しようとしたら、

Cannot connect to the Docker daemon 
at unix:///var/run/docker.sock. 
Is the docker daemon running?

というエラー。

メモ

ローカルの Docker は

  • Docker CLI
  • Docker Daemon (dockerd)

の2つに分離される。

ゆるく言うと、

「操作する人」と「実際に働く人」が分かれてる状態

これが分離してるってこと。

────────────────────
■ 分離ってどういうこと?

Docker は実は 2 つのプロセスで動いてる。

  1. Docker CLI
    これはただの“リモコン”。
    キーボードから打つ docker ps とか docker run の部分。
  2. Docker Daemon (dockerd)
    これがほんとの Docker の本体。
    ・コンテナを作る
    ・コンテナを起動する
    ・イメージを pull する
    ・ネットワーク作ったり volume 管理したり
    ぜんぶここがやってる。

CLI 自体はコンテナを動かす能力ゼロ。
命令を送るだけ。

ここが「分離している」という意味。

────────────────────

ということ。

イメージしにくいのでもう少し

もう少し、

生活にしたイメージとしては

────────────────────
■ 例えるなら

・CLI → お店の注文端末(注文ボタン)
・Daemon → キッチンで料理を作る人

CLI(ボタン)は押せるけど、
キッチンが閉まってたら料理は作られない。

つまり、Hiro の Mac の状況は

端末はあるけど、キッチン(daemon)が起動してない

だから docker ps が通らない。

────────────────────

対応

CLI は Linux/Mac だと
「/var/run/docker.sock」という Unixソケット を通して
Daemon に命令を送ってる。

このソケットは
Daemon が起動したときに作る“通信口”。

daemon が起動してないと
・ソケットがない
・ソケットがあっても応答がない
から CLI は接続エラーになる。

ここで、

Mac では「Docker daemon だけを単体で起動する」という選択肢は存在しない

という認識(現時点での解釈)なので、

Docker Desktopが、

Docker Desktop が
・Linux VM を起動
・VMの中で dockerd を起動
・その仮想環境を UNIX ソケットとして Mac 側に露出

という感じらしいので、

それで立ち上げてデーモン起動で対応完了。

ピックアップ

おすすめ書籍

コメント一覧

コメントはまだありません。

コメント送信

コメントを残す

広告

おすすめ記事