Linux
 Computer >> コンピューター >  >> トラブルシューティング >> Linux

[FIX]「unix:///var/run/docker.sock」でDockerデーモンに接続できない

Dockerは、コンテナーを使用してアプリケーションを簡単に作成、デプロイ、実行できるため、ますます人気が高まっています。コンテナを使用すると、開発者は、アプリケーションを1つの完全なパッケージとしてデプロイする前に、そのすべてのライブラリと依存関係を含むパッケージを作成できます。 インストール Linux上のDockerは比較的簡単です。ターミナルでいくつかのコマンドを実行するだけで、準備完了です。

[FIX]「unix:///var/run/docker.sock」でDockerデーモンに接続できない

ただし、インストールが成功した後でも、これはすべてのユーザーで同じではない場合があります。最も一般的に発生するエラーの1つは、次のとおりです。 Dockerデーモンに接続できません(unix:///var/run/docker.sock。dockerデーモンは実行されていますか?) このエラーは、docker run、docker info、docker pull、dockerstopなどのさまざまなdockerコマンドを実行しているときに発生する可能性があります。

エラーの原因:Dockerデーモンに接続できませんか?

多くの開発者からの苦情を受けた後、私たちは飛び込んで効果的な解決策を考え出すことにしました。このエラーを引き起こす理由には、次のようなものがあります。

  • Dockerデーモンが実行されていません
  • Dockerはシャットダウンしません きれいに。
  • ルート権限の欠如 Dockerサービスを開始します。

問題の原因についての基本的な理解ができたので、次に利用できるさまざまな解決策を見てみましょう。

解決策1:systemctlを使用してDockerサービスを開始します

UbuntuへのDockerの新規インストールを完了したばかりの場合、またはPCを再起動した場合は、Dockerサービスの可能性が高くなります。 実行されていません 。 Dockerデーモン(dockerd)は、dockerのシステムサービスです。このサービスは、イメージ、コンテナー、ネットワーク、ボリュームなどのさまざまなDockerオブジェクトを処理し、DockerAPIリクエストをリッスンします。

Systemctlコマンドは、古いSysV initシステムを置き換えるものであり、systemdサービスを管理します Linuxシステムで実行されています。システムにsystemctlがない場合でも、心配する必要はありません。 サービスを使用する 以下に説明するコマンド。

注: この方法は、APTパッケージマネージャーを使用してDockerをインストールしたユーザーに対してのみ機能します。 SNAPを介してDockerをインストールした場合 、ソリューション5を参照してください 以下。

  1. ターミナルを開く 最初のコマンドを実行します– docker unmask
sudo systemctl unmask docker

dockerがマスクされているときにdockerサービスを開始しようとすると、「docker.serviceの開始に失敗しました:ユニットがマスクされています」というエラーが発生する可能性があります。マスクは、無効化のより堅牢なバージョンと見なすことができます。ユニットファイルがマスクされると、ユニットは「dev /null」にリンクされます。コマンド「$ systemctllist-unit-files 」を使用して、すべてのユニットファイルの状態を一覧表示できます。 ‘

2.Dockerユニットがマスク解除されたら 、Dockerを起動できます デーモン systemctlコマンドを使用します。 ドッカー デーモン 画像、コンテナ、DockerAPIリクエストなどのDockerオブジェクトを管理します。コマンドラインで以下のコマンドを実行します。

systemctl start docker
[FIX]「unix:///var/run/docker.sock」でDockerデーモンに接続できない

3.確認する Dockerサービスがアクティブで実行されているかどうかsystemctlステータスを使用します コマンド。特定のサービスの現在のステータスを表示します。ターミナルで以下のコマンドを実行します。

systemctl status docker
[FIX]「unix:///var/run/docker.sock」でDockerデーモンに接続できない

上の画像から、Dockerがアクティブで実行されていることがわかります。 。

解決策2:「失敗したDockerプル」をクリーンアップしてDockerサービスを開始する

コンテナをプルしているときに、予期せずDockerを閉じる場合があります。このような状況では、 docker.serviceがマスクされます およびdocker.socket ファイル。 Docker.socketは、「/ var / run / docker.sock」にあるファイルであり、Dockerデーモンとの通信に使用されます。 マスクを解除する必要があります 2つのユニットのファイル–続行する前のdocker.serviceとdocker.daemon dockerを起動します。

  1. ターミナルを起動します コマンドを実行します 以下:
systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service
[FIX]「unix:///var/run/docker.sock」でDockerデーモンに接続できない

以下のコマンドを実行してもエラーが発生する場合は、削除する必要があります Containerd内のファイル Dockerを再起動する前にディレクトリ。 ContainerdはDocker1.11で導入された機能であり、Dockerイメージのライフサイクルを管理するために使用されます。

2.ターミナルを開き、以下のコマンドを実行します。 ルートパスワードを知っていることを確認してください コマンドを実行するには昇格された特権が必要になるためです。

sudo su
service docker stop
cd /var/run/docker/libcontainerd
rm -rf containerd/*
rm -f docker-containerd.pid
service docker start
[FIX]「unix:///var/run/docker.sock」でDockerデーモンに接続できない

解決策3:Dockerd(Docker Daemon)サービスを開始する

Dockerdは、Docker APIをリッスンし、さまざまなDockerオブジェクトを管理するDockerデーモンです。 Dockerdは、コマンド「 $ systemctl startdocker」の代わりに使用できます。 ‘これはDockerデーモンの起動にも使用されます。

  1. ターミナルを開く およびdockerdを開始 以下のコマンドを実行します:
sudo dockerd
[FIX]「unix:///var/run/docker.sock」でDockerデーモンに接続できない

解決策4:サービスコマンドを使用してDockerを起動します

SysVinitシステムを使用している場合 の場合、systemctlコマンドは機能しません。 サービスコマンドを使用する必要があります dockerデーモンを起動する

  1. ターミナルを起動して実行 以下のコマンド:
sudo service --status-all
sudo service docker start
[FIX]「unix:///var/run/docker.sock」でDockerデーモンに接続できない

解決策5:Snapを使用してDockerサービスを開始する

Snapパッケージマネージャーを使用してDockerをインストールした場合 、dockerデーモンを管理するにはsnapコマンドを使用する必要があります。

通常、Snapはサービスを自動的に管理します。ただし、このエラーなどの状況では、手動による介入が必要になります。 snapコマンドで使用できる引数には、stop、start、restartなどがあります。この例では、開始パラメーターを使用します。

  1. ターミナルを開き、以下のコマンドを実行してDockerを起動します
sudo snap start docker
[FIX]「unix:///var/run/docker.sock」でDockerデーモンに接続できない

2.以下のコマンドを実行して、確認します。 Dockerサービスが開始されたかどうか。

sudo snap services

それはリストになります 実行中のすべてのスナップサービス

[FIX]「unix:///var/run/docker.sock」でDockerデーモンに接続できない

上記のコマンドが機能しない場合は、 docker:homeplugを接続してみてください デフォルトでは自動接続されていないためです。完了したら、開始 Dockerサービス

3.ターミナルを起動し、以下のコマンドを実行します。

sudo snap connect docker:home :home
sudo snap start docker
[FIX]「unix:///var/run/docker.sock」でDockerデーモンに接続できない

解決策6:ルートP権限を持たないユーザーのためにDockerを起動します

昇格された特権の欠如が原因でもエラーが発生する可能性があります また、ユーザーは「unix:///var/run/docker.sock」にアクセスできません。幸い、回避策があります。 DockerHost変数をポート2375経由でローカルホストにエクスポートします。

  1. ターミナルを開き、以下のコマンドを実行します:
export DOCKER_HOST=tcp://localhost:2375
[FIX]「unix:///var/run/docker.sock」でDockerデーモンに接続できない

解決策7:Dockerを再インストールする

上記の解決策でエラーが解決しない場合は、インストールエラーが発生する可能性が高くなります。 LinuxシステムにDockerを正しくインストールするには、Docker公式Webサイトの手順に従います。


  1. 忘れた Windows 8 の画像/PIN/テキスト パスワードをリセットする方法

    Microsoft のこれまでで最も安全なオペレーティング システムである Windows 8 では、Windows アカウントにログインするときに使用できる 2 つの新しいパスワード タイプ (4 桁の PIN と画像パスワード) が導入されています。 PIN を使用するとすばやくログインでき、ピクチャ パスワードを使用すると、より創造的で楽しい方法でログインできます。ピクチャ パスワードや PIN パスワードをリセットする必要がある場合など、通常のパスワードは依然として必須であるため、無視することはできません。 Windows 8 のパスワードをお忘れですか?ねえ、それは起こります。幸

  2. Windows / Mac /オンラインでGoogle Earthを記録する方法

    文字通り小さな世界です。私たちが何を意味するのか疑問に思っていますか? 世界中を旅することがあなたの熱望であるなら、旅行チケットに何百ドルも何千ドルも費やす必要はないかもしれません.代わりに、Google Earth のようなプラットフォームが世界中を旅する欲求を満たすことができます .あなたがしなければならないのは、その場所に入るだけで、その場所の仮想の景色が見えるでしょう. もちろん、それはあなたの夢の目的地に物理的にいることにはまだ匹敵しません.しかし、夢の目的地のバーチャル ツアーを Google Earth で友人や家族に提供したいと仮定してみましょう。近い将来、休暇でそこに向