macOSでDockerデーモンに接続できない


205

私は通常、OSX上のアプリをbrewで管理することを好みます

docker、docker-compose、docker-machineをインストールできます

docker --version
Docker version 17.05.0-ce, build 89658be
docker-compose --version
docker-compose version 1.13.0, build unknown
docker-machine --version
docker-machine version 0.11.0, build 5b27455

「Docker for Mac」アプリをダウンロードして実行しませんでした。

しかし、実行しようとすると

> docker run -d -p 80:80 --name webserver nginx
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.

すでにsockファイルを確認しました

ls -lah /var/run/docker.sock /var/tmp/docker.sock
ls: /var/run/docker.sock: No such file or directory
ls: /var/tmp/docker.sock: No such file or directory

私はこの提案された解決策も試しました:Mac OS X sudo docker Dockerデーモンに接続できません。dockerデーモンはこのホストで実行されていますか?

しかし、私はこのエラーメッセージを受け取りました:

$ eval $(docker-machine env default)
Host does not exist: "default"

コマンドラインツールでDockerサービスを実行することはできますか?


2
LaunchpadからDockerアプリケーションを起動します。アプリを実行するには、このアプリに対して何らかの特権を付与する必要があることを確認するダイアログが表示されます。その後、Dockerがゲームに戻ります。
Rafael Kerr

私の場合、別のユーザーがログインしていたため、失敗しました。他のユーザーをログアウトしてから作業した
Raza Ahmed

回答:


470

サポートされているMacでは、次のコマンドを実行します。

brew cask install docker

次に、Dockerアプリを起動します。次をクリックします。特権アクセスを要求します。確認。クジラのアイコンが上部のバーに表示されます。それをクリックして、「Docker is running」が表示されるのを待ちます。

これでdockerコマンドを実行できるようになります。

docker ps

dockerはシステムレベルのパッケージであるため、を使用してインストールすることはできずbrew install、代わりにcaskを使用する必要があります。

注:このソリューションは、CPUが仮想化をサポートしているMacでのみ機能します。古いMacは含まれていない場合があります。


10
これは受け入れられる答えになるはずです。インストール後の起動パッドに移動し、Dockerを検索
Joe Lloyd

39
brew install dockerを実行しましたが、brew cask install dockerコマンドを実行するまでアプリはインストールされませんでした。ありがとう!
jbrahy 2017

2
caskをインストールした後でもコマンドが機能しない場合(およびDocker whaleがパスワードを指定した後に実行されていることを示している場合)はどうなりますか?
vol7ron 2018年

2
このソリューションは、CPUが仮想化をサポートするMacでのみ機能します。たとえば、2009 Mac Proでは機能しませ。この重要な事実を含むように回答を編集していただけませんか?
John Y

3
これは、私がbrew install docker最初に使用したときに役立ちました。brew installCLIサービスbrew cask installを処理し、グラフィカルユーザーインターフェイスでサービスを処理するのに役立つ拡張機能です。
Binoy S Kumar

106

macOSではdockerバイナリはクライアントにすぎず、DockerデーモンはLinux固有のカーネル機能を使用するため、Dockerデーモンを実行するために使用できません。したがって、OS XでDockerをネイティブに実行することはできません。したがってdocker-machine、作成するためにインストールする必要がありますVMに接続します。

docker-machinemacOSにインストールする

docker-machineコマンドがまだない場合は、次のいずれかの方法でインストールします。

  • Brewコマンドの使用:brew install docker-machine docker
  • リリースページから手動で:

    $ curl -L https://github.com/docker/machine/releases/download/v0.16.1/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine
    $ chmod +x /usr/local/bin/docker-machine
    

参照:Mac用のDockerを始めましょう

Virtualboxをインストールする

docker-machineVirtualBoxのインストールに依存しており、そうでない場合は失敗します。VirtualBoxがすでにある場合は、この手順をスキップできます。

  • Homebrewの使用: brew cask install virtualbox
  • Virtualbox.orgのリリースを手動で使用する

OS XのセキュリティパネルでVirtualboxカーネル拡張機能のロードを積極的に受け入れ、次のコマンドが失敗しないようにマシン再起動する必要があります。Error: VBoxNetAdpCtl: Error while adding new interface

docker-machinemacOSで構成する

defaultマシンを作成します(マシンがない場合は、以下を参照してくださいdocker-machine ls):

docker-machine create --driver virtualbox default

次に、Dockerクライアントの環境をセットアップします。

eval "$(docker-machine env default)"

次に、コンテナをリストして再確認します。

docker ps

参照:Docker MachineとローカルVMの使用開始


関連:


7
これは受け入れられる答えになるはずです。a)機能しない理由、b)OSXにUIをダウンロードせずに機能させる手順、c)参考資料への参照リンクを明確に示しています。
user2490003

1
brew cask install virtualbox
docker

1
docker-machineログイン時に開始するには、を使用brew services start docker-machineします。Homebrewを使用しない場合は、このページの「起動時にローカルマシンを開始する」セクション(Macの手順を含む)を参照してください。
Chris H.

40

私はこれと同じ問題を抱えていましたが、次の手順で解決しました:

docker-machine restart

端末(またはiTerm2など)を終了して再起動します。

eval $(docker-machine env default)

私もここで答えまし


2
evalの1つは、必要なすべての「べき」です:)
rogerdpack '19

15

Mac OSを使用していてLaunchpaddockerアプリケーションを開いて選択します。resetタブからをクリックしrestartます。


はい、最初にDockerアプリケーションを起動する必要があります
エンダー、

12

これを試してデフォルトを作成します。

docker-machine create default

5
これはちょうど私に与えた... docker-machine create default CAの作成:/Users/stens/.docker/machine/certs/ca.pemクライアント証明書の作成:/Users/stens/.docker/machine/certs/cert.pem Running事前作成チェック...事前作成チェックのエラー:「VBoxManageが見つかりません。VirtualBoxがインストールされていて、VBoxManageがパスにあることを確認してください」....これは、VirtualBoxがosxでdockerを実行する必要がないため、間違っているようです
スコットステンスランド

あなたが使用することができます表示されたxhyveだけでなく、参照stackoverflow.com/a/42419979/32453を :)またはちょうどVirtualBoxのインストール
rogerdpack

そして..だから何?
-FrankyFred

7

OSXでは、発行する前にDockerアプリケーションを起動したことを確認してください

docker ps

または docker build ...など...はい、それは奇妙で、その発行を多少誤解させるようです

docker --version

dockerデーモンが実行されていなくてもバージョンが表示されます...他のバージョンのコマンドについても同様です...まったく同じ症状が発生しました... OSXでのこの動作はLinuxでの動作とは異なります


3

私も同じ問題を抱えていました。Dockerは実行中ですが、CLI経由でアクセスできませんでした。

私は「Docker Quickstart Terminal.app」を実行することで問題を解決しました。これは「/アプリケーション/ Docker /」フォルダにあります。このターミナルアプリのインスタンスで作業している限り、Dockerは完全に機能します。2番目のウィンドウが必要な場合は、もう一度「クイックスタート」アプリを実行する必要があります。

Docker for Macをインストールしています。したがって、私のソリューションがHomebrewのインストールに有効かどうかはわかりません。

「Docker Quickstart Terminal」アプリは、基本的には、ターミナルアプリを起動するためのいくつかのAppleScriptと、必要なすべての環境変数を初期化するbash起動スクリプトのようです。

これが他の誰かを助けることを願っています!


3

私はドッカーを最新の状態にしており、ドッカーはそれが実行中であると言い、診断は良好でした。レガシー環境変数の設定を解除する必要がありました(https://docs.docker.com/docker-for-mac/troubleshoot/#workarounds-for-common-problemsに感謝)

unset DOCKER_HOST
unset DOCKER_CERT_PATH
unset DOCKER_TLS_VERIFY

1
これにより、VMベースのDockerからMacインストーラーにアップデートした後の問題が修正されました。VMを探し続けました。
bobomoreno

「接続できません...」などで間違ったIPアドレスが表示された場合に使用します
bobomoreno

2

Docker for Macは非推奨です。MacでDockerを実行するのにHomebrewは必要ありません。代わりに、おそらくDockerデスクトップをインストールするか、すでにインストールされている場合は、それが最新で実行中であることを確認してから、ソケットへの接続を再試行します。

ここに画像の説明を入力してください


2

インストールDockerのスクリプトを実行し、コマンドラインから起動する必要があります。

brew cask install docker
pip3 install docker-compose
open -a Docker
docker-compose ... 

その後動作するdocker-composeはずです


おかげで私のために働いた
ソウルコーダー

1

minikubeをインストールして、ダークサイドに参加してください。

https://kubernetes.io/docs/tasks/tools/install-minikube/

$ bash --version
GNU bash, version 5.0.3(1)-release (x86_64-apple-darwin18.2.0)
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

eval $(minikube docker-env)

$ docker run --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate     -i /local/swagger.json     -l python     -o /local/test/
[main] INFO io.swagger.parser.Swagger20Parser - reading from /local/swagger.json
[main] WARN io.swagger.codegen.DefaultGenerator - 'host' not defined in the spec. Default to 'localhost'.

Macbook Pro 2018とbash v5でうまく動作します。他のすべてのドッカー最近ナンセンスIMOをインストールする必要はありません。minikubeに付属するVMおよびインストールスクリプトは、私の経験からdockerマシンを置き換えることができます。


フォローアップコメントとして、kubeを使用しない別のプロジェクトにもdockerが必要でしたが、dockerデスクトップはうまく機能します。いつも起動しないでください。さもないと、kubeはこの投稿に腹を立てます。
リゲマー

1

私のMacでも同様の問題に直面していて、マシンでdockerが実行されていないことがわかりました。アプリケーションに移動してクジラを呼び出すだけで動作しました。



0

Spotlight検索を実行して、brew cask install作成した/ Applicationsフォルダーの下のDockerアプリケーションを実行するだけで済みました。これが実行されると、インストールを完了するように求められました。その後、私は走ることができましたdocker ps

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.