ドッカーの問題


32

私はubuntu 15.04で「Docker」について学ぼうとしています。

「docker run image」などのdockerを使用してコマンドを実行すると、次のエラーが発生します。

FATA[0000] Post http:///var/run/docker.sock/v1.17/containers/create: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?

どういう意味かわかりません。


5
このエラーメッセージが表示された後、でデーモンを開始しましたsudo service docker start。それから走れましたsudo docker run hello-world。がんばろう。
シェルター

回答:


31

このエラーが発生する理由は2つ考えられます。

  1. Dockerデーモンが実行されていません。で確認できsudo /etc/init.d/docker statusます。

  2. Dockerデーモンは実行されていますが、リッスンしないように構成されてい/var/run/docker.sockます。でオプションが指定されている場合は、チェックイン/etc/default/dockerでき-HますDOCKER_OPTS


3
+1。$ sudo service docker status取得してから使用する必要がありました$ sudo /etc/init.d/docker status * Docker is managed via upstart, try using service docker status
IsaacS

を実行した後sudo /etc/init.d/docker status、Dockerサービスがダウンしていることを認識しました。を実行sudo /etc/init.d/docker startすると、Dockerイメージを実行できました。
ハリル

systemd(Ubuntu 16.04+)では/ etc / default / dockerはもう役に立たないようです。ところでsystemdのデーモンステータスをチェックする標準的な方法はになりますsudo systemctl status docker
パブロA

38

Dockerをインストールすると、ユーザーをdockerグループに追加するように求められます。次のコマンドを実行するだけです:

sudo usermod -aG docker $USER

変更を有効にするには、セッションを閉じて再度ログインする必要があります。


おそらく最も簡単です。動作するかどうかはわかりませんが、(@ decebalの使用)答え。
イェールダオン

このプロンプトは表示されませんでした。私はRaspberry Piを使用しています。
イゴールガナポルスキー

後でdockerグループに自分を追加するには、を実行しsudo usermod -a -G docker <user>ます。詳細はこちらをご覧ください。
ヒューW

3
「セッションを閉じる」を重視-ありがとう!
ドーランアンテヌッチ

Gnomeを使用したUbuntu 18.04では、これを機能させるためにシステムを再起動する必要がありました。ログアウトとログインだけでは機能しませんでした:/
ゾルタン

15

ユーザーがdockerグループに参加した場合、グループ権限を適用するために、dockerのインストール後にOSを再起動してください。

更新:

Dockerをubuntu 14.04にインストールする場合、インストーラーは、ユーザーがDockerサービスにアクセスするためにDockerグループに追加した内容をコメント化します。

見る

dockerデーモンは、TCPポートではなくUnixソケットにバインドします。デフォルトでは、Unixソケットはユーザーrootが所有し、他のユーザーはsudoを使用してアクセスできます。このため、dockerデーモンは常にrootユーザーとして実行されます。dockerコマンドを使用するときにsudoを使用する必要がないようにするには、dockerというUnixグループを作成し、それにユーザーを追加します。dockerデーモンが起動すると、Unixソケットの所有権がdockerグループによって読み取り/書き込み可能になります。

ソース:https : //docs.docker.com/installation/ubuntulinux/#create-a-docker-group


2
これが役立つ理由を説明する必要があります。
ガントベルト

1
@guntbert私は私の答えを更新しました
。– MURATSPLAT

@MURATSPLAT、QBI、gunbertのおかげで、私の解決策を見つける
リシカント

グループのアクセス許可の変更を有効にします。再起動する必要はありません。ログアウトで十分です。
ティム・ウー

Gnomeのと@TimWuでのUbuntu 18.04、私は再起動する必要がありましたシステムを-ちょうどログアウトし、バックでは動作しませんでした:/
ゾルタン

10

ホストでsudo docker images呼び出されるコンテナがあるかどうかを確認するために使用してみて<image>ください。

実行docker run <image>すると<image>、ホストコンピューターで呼び出されるコンテナーが起動します。ホストコンピューターにこのコンテナーがない場合、Dockerは、実行方法と同様に、リポジトリハブから ''という名前のコンテナーを自動的にプルしますdocker pull <image>。その後、 ''という画像が見つからない場合、このエラーメッセージが表示されます。

交換しhello-worldて、Dockerがコンピューターで動作しているかどうかを確認できます。

sudo docker run hello-world

また、を使用する必要があるかどうかを確認する必要がありますsudo


2
OPがsudoを使用していないことが問題だった場合、エラーメッセージは「no such file or directory」ではなく「permission denied」でした。
アンドレアスヴェイテン

1
うん、あなたは正しい。ユーザーは、エラーメッセージは次のようになり権限を持っていない場合、私は、それを試してみました:FATA[0000] Get http:///var/run/docker.sock/v1.18/containers/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
realhu

2
権限を付与しようsudo usermod -a -G docker ec2-user
AB

4

この記事は参考になりました:https : //docs.docker.com/articles/systemd/ ; 私はそれを複数の環境で実行し、働きました。あなたにも役立つことを願っています


リンクのみの回答は受け入れられるとは見なされません。完全に答えを具体化してください。
Flimzy

2
これは理論的には質問に回答するかもしれませんが、回答の重要な部分をここに含め、参照用のリンクを提供することが望ましいでしょう
ミッチ

1
そのsystemdリンクは死んでいるようです。ここに別のリンクdocs.docker.com/engine/admin/systemd
wsams

2

画像をプルしようとしたときに、同様のメッセージが表示されました。私はちょうどそれをやったsudo su後、イメージを正常にプルすることができました。


2
Ask Ubuntuへようこそ!この回答を編集して、これを行う方法に関する具体的な詳細を展開することをお勧めします。(Ask Ubuntuでどのような回答が最も価値があると考えられるについての一般的なアドバイスについては、「良い回答を書くにはどうすればよいですか」も参照してください。)
デビッドフォースター

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