unix:/var/run/docker.sockでDockerデーモンに接続できません。dockerデーモンは実行されていますか?


172

インターネットで利用できるすべてのソリューションを適用しましたが、Dockerを実行できません。

サーバーでScrapy Splashを使用したい。

ここにhistory私が実行したコマンドがあります。

docker run -p 8050:8050 scrapinghub/splash
sudo docker run -p 8050:8050 scrapinghub/splash
sudo usermod -aG docker $(whoami)
sudo docker run -p 8050:8050 scrapinghub/splash
newgrp docker
sudo docker run -p 8050:8050 scrapinghub/splash
reboot
sudo docker run -p 8050:8050 scrapinghub/splash
docker run -p 8050:8050 scrapinghub/splash

サーバーを再起動しようとしたのもわかりますが、効果はありませんでした。

の出力を見る ps -aux | grep docker

root@mani:/var/www/html# ps aux | grep docker
root      8524  0.0  0.8 127904 13964 ?        Ssl  17:21   0:00 /usr/bin/dockerd --raw-logs
root      8534  0.0  0.3  90588  5012 ?        Ssl  17:21   0:00 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc
root      8543  0.0  0.0   8812   764 pts/1    S+   17:21   0:00 grep --color=auto docker
root     16356  0.0  0.0  17200   964 pts/1    S    17:14   0:00 newgrp docker
root     20080  0.0  0.0  17200   964 pts/1    S    17:06   0:00 newgrp docker
root     30221  0.0  0.0  17200   964 pts/1    S    17:09   0:00 newgrp docker

ps auxを実行する場合| grep docker、デーモンプロセスが実行されているのを見ますか?
Rome_Leader 2017年


@Rome_Leaderは私の質問の出力を参照してください...
Umair Ayub

3
これを試してください:sudo service
docker

2
これを使用して、sudo service docker status
Docker

回答:


161

あなたはこれを試すことができます:

systemctl start docker

それは私にとってはうまくいきました。

PS:sudoなしでは実行できないコマンドがある場合、これを試してください:

gpasswd -a $USER docker

10
最初のコマンドを実行すると、私はエラーを得た: Failed to start docker.service: Unit docker.service is masked.だから、私は次のことを実行する必要がありました: systemctl unmask docker.service systemctl unmask docker.socket systemctl start docker.service
クリス・ファンティエット

50

dockerが正常にシャットダウンしない場合、このエラーが発生する可能性があります。次の回答は、Dockerスナップパッケージに関するものです。

次を実行snap logs dockerして探します。

Error starting daemon: pid file found, ensure docker is not running or delete /var/snap/docker/179/run/docker.pid

そのファイルを削除してDockerを再起動するとうまくいきました。

rm /var/snap/docker/<your-version-number>/run/docker.pid
snap stop docker
snap start docker

置き換えてください<your-version-number>‍、適切なバージョン番号


これを防ぐにはどうすればよいですか?PCの電源を入れるたびに、docker.pidを削除する必要があります。
ハミドレザ

47

とにかく走れ

sudo dockerd

dockerdは、Dockerコンテナーのデーモンサービスです。バックグラウンドで実行されていないため、再起動する必要があるサービスに関連するアクションを実行できません。


10
これは私にとって機能する唯一のコマンドです。私は、Dockerを稼働させるために非常に多くのフープを飛び越えなければならないのはばかげていると思います。
Homunculus Reticulli

3
エラーが発生しますError starting daemon: Devices cgroup isn't mounted
Vineet 'DEVIN' Dev

@fepegar Dockerが正しくインストールされていない可能性があります
Yash Pokar

@YashPokar確かに、私は再インストールしてしまい、現在は問題なく動作しています。ありがとう。
fepegar

Dockerコンテナー内で私のために機能するコマンドのみが、Dockerコンテナーを開始します。ビルド中に自分の環境を作成するには、コードビルドに必要です。:-)
私たちはボルグ

21

最初にsudoを試してください。現在のユーザーには、Dockerデーモン(/var/run/docker.sock)と通信するためのアクセス許可がない可能性があります。

それでも機能しない場合は、インストール後にdockerデーモンを停止します。

$ sudo service docker stop

そして、次のコマンドを実行して、デーモンをバックグラウンドで起動します。

$ sudo nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

Dockerでの作業を簡単にするには、ユーザー名をDockerユーザーグループに追加する必要があります。ユーザーをグループに追加するには、次のコマンドを使用します

$ sudo usermod -aG docker $USER

また、この手順は、Linuxのdocker Post-installation stepsの公式ドキュメント(https://docs.docker.com/engine/installation/linux/linux-postinstall/)で言及されています。

Ubuntuの16.04ユーザーは、これらの手順を実行することができます

ファイル/lib/systemd/system/docker.serviceの内部変更: ExecStart = / usr / bin / dockerd fd:// with ExecStart = / usr / bin / dockerd -H tcp://0.0.0.0:2375

ファイル/etc/init.d/dockerの変更:

DOCKER_OPTS = with DOCKER_OPTS = "-H **** tcp://0.0.0.0:2375 "

マシンを再起動します。そして、Dockerで遊んでみましょう。


1
実行すると、sudo nohup docker daemon -H http://tcp://0.0.0.0:2375 () -H http://unix:///var/run/docker.sock与えbash: syntax error near unexpected token ` '(
Umairアユブ

1
私はredhat linuxを実行しています
Umair Ayub 2017

おお…ごめんなさい。余分な文字()、更新されました。RHELのどのバージョンですか?$ DOCKER_HOSTで得られる値を確認してください。
mohan08p

$ sudo systemctl enable dockerは、起動時にdockerサービスを開始します。
mohan08p 2017年

私は今Dockerをインストールしようとしてい CentOS Linux release 7.3.1611 (Core)ます...しかし、今のエラーはYour Linux kernel version 2.6.32-042stab116.2 is not supported for running docker. Please upgrade your kernel to 3.10.0 or newer....を使用してカーネルを更新できyum update kernelますか... ???? 質問は、それは私のサーバー上のすべてを削除しますか?その上で実行されているウェブサイトを持つそのライブサーバー、私はそれを台無しにしたくありません。
Umair Ayub 2017

9

これは通常、Dockerを停止していない場合に発生します。

解決する

service docker stop
cd /var/run/docker/libcontainerd
rm -rf containerd/*
rm -f docker-containerd.pid
service docker start

次に、「docker run ....」でイメージをダウンロードし、通常どおりコンテナを起動します


8

メインドキュメントからDOCKERのフレッシュインストールを実行した後、これにヒットしました。私にとっての問題は、インストール直後にサービスが実行されていないことでした。

これらのコマンドは、Dockerが稼働していることを確認して、runコマンドがそれを見つけられるようにします。

$ sudo service --status-all 
$ sudo service docker start
$ sudo service docker start

7

私はルートで実行していて、以下を試しましたが、うまくいきました:

service docker start

export DOCKER_HOST="tcp://0.0.0.0:2375"

3
これがホストで機能する場合、実質的にrootパスワードはありません。そのポートにアクセスできる人なら誰でも、ホストでrootとしてコマンドを実行できます。
BMitch

6

Dockerを閉じるとコンテナがプルされてこの問題が発生しましたdocker pull mongo。最初は奇妙なエラーが出ていたので、Dockerを削除sudo apt-get purge docker.ioして再インストールしましたsudo apt-get install docker.io。これは何もしませんでした。hello-worldコンテナも実行できませんでした。少なくとも私にとって正しい修正は:

systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service

この後、mongoをプルしてhello worldを実行できます。

乾杯!


Ubuntu 18.04のSudoでそれを行わなければなりません
でした


2

これをubuntu export DOCKER_HOST = tcp:// localhost:2375で使用します


これがシステムで機能する場合、実質的にrootパスワードはありません。そのポートにアクセスできる人なら誰でも、ホスト上でrootとしてコマンドを実行できます。
BMitch

2

export DOCKER_HOST = tcp:// localhost:2375は、sudoアクセスがなく、ユーザーがunix:///var/run/docker.sockにアクセスできないユーザーに最適です。


これは、通常はrootアクセス権を持っていないが、簡単にホストのrootになりたい人にも役立ちます。そのポートにアクセスできる人は誰でも、rootとしてコマンドを実行できます。
BMitch

@BMitchは、詳しく説明しますか?
Fran Marzoa

信頼できない別のユーザー、または別のホストからの@FranMarzoaはdocker run、コンテナー内のrootユーザー、特権、pidおよびネットワーク上のホスト名前空間で任意のコマンドを実行し、ルートファイルシステムをボックスでマウントします。
BMitch

2

メッセージが表示されたら、AWSのインスタンスでdocker(インストールしたばかり)を実行しようとしていました。私はただ書いてsudo service docker start、私のためにうまく働きます。

AWSとDockerもご覧ください


2

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

MacでDocker Desktopを実行するのを忘れてしまいました。DockerDesktopを実行したら、問題ありません。


2

この例外は、Dockerのサービスが実行されていない場合、またはログインしているユーザーにdockerにアクセスする権限がない場合に発生し、通常はRedHatに含まれます

以下のコマンドを使用して問題を解決する必要があります

sudoサービスDockerの開始

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


1

node:ltsイメージを実行しているgitlab CIでも同じ問題が発生しました。

  • 私はdockerデーモンを再起動し、コンテナーを再起動しました、それは私のために働いた。

1

これは私にとってはうまくいきました。Ubuntu16または18を使用している場合はうまくいくかもしれません(14もうまくいくかもしれません)。試してみるのは簡単:

Ubuntuソフトウェアに移動し、Dockerと入力します。Docker(108 mb)がプレインストールされている場合は、アンインストールします。dockerをインストールするコマンドを実行し、同じエラーが発生するかどうかを確認します

エラー:

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

上記の手順を実行した後。 ここに画像の説明を入力してください

ご覧のとおり、うまくいきました:)


1

Linuxでも、yum(yum install docker)を使用してdockerをインストールすると、同じ問題が発生しました。

解決策:公式サイトからdockerバイナリをダウンロードします:docker install、解凍して、インストール手順に従います。


1

このエラーの私のバージョンでは、現在の回答はどれも機能しませんでした。Ubuntu 18のデスクトップバージョンを使用しています。次の2つのコマンドで問題が修正されました。

sudo snap connect docker:home :home

sudo snap start docker



0

私にとっての解決策は、正しいDockerパッケージをインストールしたことを確認することでした。たとえば、Ubuntuの場合、廃止されたパッケージは次のとおりです。

  • ドッカー
  • ドッカーエンジン
  • docker.io
  • コンテナ
  • runc

インストールについては、https://docs.docker.comを確認してください。執筆時点では、UbuntuCentOSDebianFedora向けの手順が提供されています。


あなたはいくつかのステップを逃しました:リポジトリに署名するためにこのリンクをたどってください。medium.com/@sebagomez/...
ロバート・

上記の@Robertは、公式のdocs.dockerも参照してPGPキーを取得しています。これは、ユーザーがこのサイトまたはメディアからコピーするよりも安全です。
RikH

私はubuntuの手順を試しましたが、それらは機能しません。署名プロセスと私が提供したリンクが必要です。
Robert

@ロバート、ありがとう、私は私の不完全な説明を削除し、代わりに公式ドキュメントを参照してください。
RikH


0

ハードドライブにディスク領域が残っていないことが原因である可能性があります。デバイスに空き容量があることを確認してください。空き容量がないと、Dockerを起動できません。


0

使用する docker start <your_container_name>

次に、使用してデータベースに接続します mssql -u <yourUsername> -p <yourPassword>

最初のステップでエラーが発生した場合は、Dockerが実行中であり、2番目のステップに進みます。

注:私はMacをプライマリOSとして使用していますが、これはUnixベースのOSの場合と同じ答えになる可能性があります。そうでなければ!事前に申し訳ありません。


0

dockerをインストールして実行した後、以下のエラーメッセージも受け取りました:docker run hello-world

UNIXのDockerデーモンに接続できません:/var/run/docker.sock。dockerデーモンは実行されていますか?

ここに解決策があります、私にとってうまくいったことです。環境-Windows 10(Windowsで有効にすることを忘れないでください:設定>更新とセキュリティ>開発者モード)-Ubuntu 18.04 LTS-Dockerデスクトップバージョン2.3.0.2(45183)-Dockerデスクトップで有効化:tcpでデーモンを公開:// localhost:2375 TLSなし-Dockerデスクトップも実行されている必要があります(Docker Hubに接続されています...ログインするだけです)

ubuntuをインストールしたら、リポジトリを更新します

sudo apt-get update

HTTPS経由でリポジトリを使用するには

sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common

公式のDocker GPGキーを追加します。

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add-

指紋のあるキーを持っていることを確認してください

sudo apt-keyフィンガープリント0EBFCD88

リポジトリを更新する

sudo apt-get update

Dockerリポジトリを更新する

sudo add-apt-repository \ "deb [arch = amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs)\ stable"

リポジトリを再度更新します

sudo apt-get update

ドッカーをバージョン5でインストールするコマンド:18.09.9〜3-0〜ubuntu-bionic

sudo apt-get install docker-ce = 5:18.09.9〜3-0〜ubuntu-bionic docker-ce-cli = 5:18.09.9〜3-0〜ubuntu-bionic containerd.io

DOCKER_HOSTを設定するコマンド

エクスポートDOCKER_HOST = "tcp://0.0.0.0:2375"

注:ubunto exで開始するには、上記のコマンドをプロファイルに追加してください:echo "export DOCKER_HOST = 'tcp://0.0.0.0:2375'" >>〜/ .bashrc

Dockerグループにユーザーを追加する

sudo usermod -aG docker $ USER

Ubuntuを再起動します

(ubuntuウィンドウを閉じてもう一度開きます)

インストールのテスト(dockerコマンドの前にsudoを使用しないでください(エラーが発生します)。ユーザー「root」は既にdockerグループに含まれています)

docker run hello-world

以下のメッセージが表示されます

Dockerからこんにちは!このメッセージは、インストールが正常に動作しているように見えることを示しています。

注:失敗した場合は、コマンドを再度実行してください:export DOCKER_HOST = "tcp://0.0.0.0:2375"

エクスポートDOCKER_HOST = "tcp://0.0.0.0:2375"

参照:https ://docs.docker.com/engine/install/ubuntu/セッション:INSTALL DOCKER ENGINE

ubuntuでインストールできる他のバージョンのdockerについては、以下のコマンドを使用してリポジトリを参照してください。

apt-cache madison docker-ce

次に、目的のバージョンのdockerをインストールします。

sudo apt-get install docker-ce = docker-ce-cli = containerd.io


0

インストール時にDockerで問題が発生しているすべての人向け。

Dockerサービスのエラーを示すエラーは、以下のコマンドを実行します。

$ sudo apt update

$ sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common

$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

$ sudo apt update

$ apt-cache policy docker-ce

$ sudo apt install docker-ce

-1

この問題は、1。systemctl enable docker 2. service docker startを実行することで永続的に解決できます。


service start dockerコンピューターを再起動するたびにDockerサービスを開始する必要があるようです。
Pran Kumar Sarkar

@PranKumarSarkar「sudo systemctl enable docker」を実行する場合は不可
GabrielBB
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.