ピックアップ
「Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?」のエラーになった件
Dockerの立ち上げに関しては、
- Dockerfileというファイルを作成する
- ビルドしてDockerイメージを作成する
- Dockerイメージからコンテナを作成する
- コンテナに接続してログインする
という手順を行って、
上記をやってみたあとに、
- Dockerのイメージの確認
- 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 つのプロセスで動いてる。
- Docker CLI
これはただの“リモコン”。
キーボードから打つdocker psとかdocker runの部分。 - 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 側に露出
という感じらしいので、
それで立ち上げてデーモン起動で対応完了。
おすすめ書籍
コメント一覧
コメントはまだありません。




コメントを残す