Ubuntu 16.04でエラーが発生します
「エラー:Dockerデーモンに接続できませんでした-
docker- machine start default
。 」
次のコマンドを実行すると
Sudo docker-compose up
誰でも答えられますか?
次のシェルコマンドを使用して環境変数が設定されていると仮定します。
eval "$(docker-machine env default)"
次のシェルコマンドを実行すると、正確なエラーを見つけることができます。
docker-compose --verbose up -d
何回もプロキシの問題が発生するか、charlesプロキシを使用して実行している場合、コンポーズの接続などをブロックできます。プロキシの問題である場合は、これをプロファイルに追加できます。
export no_proxy=192.168.99.100
Dockerデーモンの開始
次のコマンドを使用します。
Sudo systemctl start docker
または、古いディストリビューションでは、次の使用が必要になる場合があります。
Sudo service docker start
Dockerをsnap
パッケージとしてインストールした場合、これを試してください:
Sudo snap start docker
Dockerグループにユーザーを追加する必要があります。そして、「Sudo」なしでdockerコマンドを使用できます。
$ Sudo usermod -aG docker ${USER}
$ Sudo service docker restart
次に、OSからログアウトする必要があります。最後に、ログインすると、「Sudo」なしでdockerコマンドを使用できます。
Docker-composeのインストール後にこのエラーが発生したことに気付きました。 runSudo docker-compose build
エラーが表示されました-
エラー:Dockerデーモンに接続できませんでした。 Dockerのインストールが必要になる場合があります
docker-ceのインストール (Ubuntu 16.04および18.04)でこれを解決しました。すべてがその後期待どおりに機能しました
私の特定のケースでは、私のdocker-compose.ymlファイルで指定されたmysqlサービスは、プロジェクトルートディレクトリにmysql_data
という名前のボリュームを作成しました。問題は、このディレクトリ、および含まれるファイルがユーザー999とグループのdockerで作成されたことです。そのため、基本的には Dockerボリュームでのアクセス許可の処理 で説明されている手法を使用することで、すべて一緒に緩和できるアクセス許可の問題を作成しました。
ただし、当面の状況を改善するには、問題の原因となっているボリュームのデータを特定する必要があります。私の特定のケースではmysql_data
ボリュームであったため、プロジェクトのルートディレクトリで次のコマンドを実行して、ファイルとディレクトリの所有権を現在ログインしているユーザーの所有権に変更しました。
Sudo chown -R ${USER}:${USER} mysql_data
どのボリュームが所有権関連の問題を引き起こしているのかわからない場合は、プロジェクトの所有権の詳細がすべて同じであることを確認するために、プロジェクトルートディレクトリで次を実行する必要があります。
Sudo chown -R ${USER}:${USER} .
上記のコマンドのいずれかを実行した結果、プロジェクトがGitソースコード管理下にある場合、ファイルとディレクトリの所有権はgit stored objects databaseの所有権とは異なる状況になります。 「 git:Unable to index file 」のようなエラーが発生する可能性が高くなります。この場合、gitプロジェクトリポジトリにファイルを追加してコミットする前に、 gitオブジェクトデータベース内のファイルの所有権は、プロジェクトのファイル所有権の正確なミラーです。これを確認するには、プロジェクトルートで次を実行します。
Sudo chown -R ${USER}:${USER} .git/objects
発生した初期エラーを修正したので、元のdocker-composeコマンドを発行できます。これにより、最初は「Docker Daemonに接続できませんでした」エラーが発生しました。
ルートで実行してみてください:Sudo docker-compose build
インストール後、コマンドを実行して、Sudoなしでdocker機能にアクセスできます。私の状況では、同じエラーですべてが解決されました:
$ Sudo usermod -aG docker ${USER}
$ su - ${USER}
$ id -n
$ Sudo usermod -aG docker username
その後、ドッカーを再起動できます:
systemctl restart docker