Dockerデーモンに接続できないというエラーメッセージが表示されます。私は同様の問題を抱えている他の人の答えを調べましたが、助けにはなりませんでした。 Ubuntu 15.10のバージョンを実行しています。私が持っているすべての情報を提供しようとします。
root@# docker-compose -f docker-compose-deps.yml up -d
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
If it's at a non-standard location, specify the URL with the DOCKER_Host environment variable.
Dockerバージョン
root@# Sudo docker version
Client:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 13:20:08 UTC 2015
OS/Arch: linux/AMD64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Docker-Composeバージョン
root@# docker-compose --version
docker-compose version 1.5.2, build 7240ff3
これは、サービスを停止または開始しようとすると発生します...
root@# Sudo service docker stop
stop: Unknown instance:
root@# Sudo service docker start
docker start/running, process 5375
ps aux | grep docker
を実行した場合
root@# ps aux | grep docker
root 4233 0.0 0.0 13692 2204 pts/15 S+ 10:27 0:00 grep --color=auto docker
どんな助けも大歓迎です。さらに情報が必要な場合はお知らせください。
私はこれを見つけ、それが私の問題を解決するように見えました。
GitHub Fix Docker Daemon Crash
リンクにあるように、docker-compose-deps.ymlファイルの内容を変更しました。それからdocker-compose -f docker-compose-deps.yml up -d
を実行しました。それから私はそれを元に戻し、何らかの理由で機能しました。提供したリンクの手順を続行する必要はありませんでしたが、最初の2つの手順で問題は修正されました。
15分のデバッグの後、同じエラーが発生しました。必要なのはSudo
だけです:) [Dockerグループの作成]をチェックしてください https://docs.docker.com/engine/installation/linux/ubuntulinux/ でSudoを削除しますプレフィックス。
Dockerがクラッシュした後にソケットファイルが再作成されなかった古いDockerバグによって問題が作成されたようです。これが問題である場合は、ソケットファイルの名前を変更すると、再作成できるようになります。
$ Sudo service docker stop
$ Sudo mv /var/lib/docker /var/lib/docker.bak
$ Sudo service docker start
このバグは修正されているので、エラーCouldn't connect to Docker daemon
を受け取っているほとんどの人は、おそらくdocker
グループに属しておらず、そのファイルを読み取る権限を持っていないため、エラーを受け取っています。 Sudo docker ...
で実行すると問題は解決しますが、優れたソリューションではありません。
Dockerは、適切なグループ権限を持つ非ルートユーザー(Sudo
なし)として実行できます。 Linux post-install docs に詳細があります。ショートバージョン:
$ Sudo groupadd docker
$ Sudo usermod -aG docker $USER
# Log out and log back in again to apply the groups
$ groups # docker should be in the list of groups for your user
$ docker run hello-world # Works without Sudo
これにより、docker
グループのユーザーは、docker
なしでSudo
およびdocker-compose
コマンドを実行できます。 Docker自体はルートを実行し、いくつかの攻撃を許可します。そのため、実行するコンテナーに注意する必要があります。詳細については、 Docker Security Documentation を参照してください。
同じ問題がありました。メモを取り、いくつかのデバッグ結果を分析した後、最後に、同じエラーになる可能性があるものを解決しました。最初にサービスを開始し、
service docker start
ユーザーをdockerグループに含めることを忘れないでください。
私はこの問題を抱えており、Sudo
を使用して物事を台無しにしたくありませんでした。調査するとき、私はいくつかの情報を取得しようとしました:
docker info
驚いたことに、私は次のエラーが発生しました:
Unix:///var/run/docker.sockのDockerデーモンソケットに接続しようとしたときに許可が拒否されました:Get http:///var/run/docker.sock/v1.38/info :Unix /var/run/docker.sockにダイヤル:接続:許可が拒否されました
何らかの理由で十分な権限がなかったため、次のコマンドで問題を解決できました。
Sudo chown $USER /var/run/docker.sock
ほら!
Dockerfile
ディレクトリに現在のユーザーがアクセスできないファイルがあると、このエラーが発生しました。したがって、docker
は完全なコンテキストをデーモンにアップロードできず、「http + docker:// localunixsocketでDockerデーモンに接続できませんでした」メッセージをもたらしました。
「ps aux | grep docker」の出力から、dockerデーモンが実行されていないようです。以下の方法を使用して、何が間違っているのか、なぜドッカーが起動しないのかを確認してください
$ Sudo tail -f /var/log/upstart/docker.log
$ Sudoドッカー-d -D
このエラーが表示される別の理由:私にとっては、docker-compose.yml
の不正な画像パス定義でした:
service:
image: ${CONTAINER_REGISTRY_BASE}/my-service
...
Lookisは最初は大丈夫ですが、envでCONTAINER_REGISTRY_BASE=eu.gcr.io/my-project/
を設定しました。明らかに、画像パスの//
がこのエラーの原因でした。
docker-compose: v.1.21.2
docker: 18.03.1-ce
私の場合、ドッカーサービスが停止している可能性があります
Dockerサービスを開始するコマンド:
$ Sudo systemctl start docker
開始するかどうかを確認するコマンド:
$ Sudo docker run hello-world
Ubuntu 16.04を使用し、docker-composeを使用したときにもこの問題が見つかりました。このコマンドを実行して修正しました。
$ Sudo systemctl start docker
$ Sudo docker-compose build
私の場合、docker-compose build
をしようとすると同じエラーが発生し、ソリューションはSudo
を追加するだけでした
Sudo docker-compose build
これをSudo
として実行すると、問題が解決しました
デフォルトのマシンを削除した可能性はわずかですか?ただし、最初にすべてのファイルが存在するかどうかを確認してください(OSX、他のシステムでも同様)
brew install docker docker-compose docker-machine xhyve docker-machine-driver-xhyve
brew link docker docker-compose docker-machine xhyve docker-machine-driver-xhyve
Sudo chown root:wheel /usr/local/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
Sudo chmod u+s /usr/local/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
また、Dockerアプリをインストールします。コンテナのメンテナンスがはるかに簡単です。
brew cask reinstall docker
ansはFinderからDockerアプリを開始します(サービスが完全に開始されるまで待ちます)
次に、以下を使用してインストールを確認します。
docker-machine ls
リストにマシンが存在しない場合は、マシンを作成して起動します。
docker-machine create default
docker-machine start default
この後、ビルド、構成、および他のすべてのコマンドが適切に動作するはずです。
次のような方法でユーザーを「docker」グループに追加する必要があります。
Sudo usermod -aG docker your-user