Dockerのバージョンを0.8.0
に更新すると、Sudo docker version
を入力中にエラーメッセージが表示されます。
Client version: 0.8.0
Go version (client): go1.2
Git commit (client): cc3a8c8
2014/02/19 12:54:16 Can't connect to docker daemon. Is 'docker -d' running on this host?
そして私はその指示に従い、コマンドSudo docker -d
を入力しました、そして私はこれを得ました:
[/var/lib/docker|2462000b] +job initserver()
[/var/lib/docker|2462000b.initserver()] Creating server
open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory[/var/lib/docker|2462000b] -job initserver() = ERR (1)
2014/02/19 12:55:57 initserver: open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory
どうすれば問題を解決できますか?
Linux用のインストール後の手順 のドキュメントには、次の手順が記載されています。
Sudo groupadd docker
Sudo usermod -aGドッカー$(whoami)
Sudoサービスドッカー開始
として Dayel Ostraco は、環境変数を追加するために必要であると言います:
docker-machine start # Start virtual machine for docker
docker-machine env # It's helps to get environment variables
eval "$(docker-machine env default)" # Set environment variables
docker-machine start
コマンドは、プロセスを導くためのコメントを出力します。
OS X上でDockerを実行している場合は、次のevalを実行しても問題ありません。
eval "$(docker-machine env default)"
すべてのターミナルセッションでこのevalステートメントを実行する必要がないようにしたい場合は、これをbash_profile
に追加できます。
#Docker
eval "$(docker-machine env default)"
変更を有効にするには、端末セッションを再起動するか、bash_profile
でsourceを実行してください。
Linuxでdockerデーモンを実行するには( CLI から)、次を実行します:
$ Sudo service docker start # Ubuntu/Debian
注:コピーして貼り付ける場合は、$
文字をスキップしてください。
RedHat/CentOSで、Sudo systemctl start docker
を実行します。
「ベース」ファイルシステムを初期化するには、次を実行します。
$ Sudo service docker stop
$ Sudo rm -rf /var/lib/docker
$ Sudo service docker start
または手動で:
$ Sudo docker -d --storage-opt dm.basesize=20G
docker-machine
をインストールするLinuxにマシンバイナリをインストールするには:
ローカル:
install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-AMD64) $HOME/bin/docker-machine
グローバル:
Sudo bash -c 'install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-AMD64) /usr/local/bin/docker-machine'
MacOSでは、docker
バイナリはクライアントに過ぎず、DockerデーモンはLinux固有のカーネル機能を使用するため、Dockerデーモンを実行することはできません。したがって、OS XでDockerをネイティブに実行することはできません。 VMを作成してアタッチするには、docker-machine
をインストールします。
docker-machine
をインストールするdocker-machine
コマンドがまだない場合は、次のいずれかの方法を使用してインストールします。
brew install docker-machine docker
。GitHub から手動で
install -v <(curl https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-AMD64) /usr/local/bin/docker-machine
参照: Docker for Macを使い始める 。
docker-machine
を構成するHomebrew経由でDocker Machineを起動するには、次を実行します:
brew services start docker-machine
default
マシンを作成するには(マシンがない場合は、docker-machine ls
を参照):
docker-machine create --driver virtualbox default
次に、Dockerクライアントの環境をセットアップします。
eval "$(docker-machine env default)"
次に、コンテナを一覧表示して再確認します。
docker ps
参照: Docker MachineとローカルVMの使用開始 。
上記のソリューションの代わりに、次の方法でDockerアプリをインストールできます。
brew cask install docker
これを確認してください 詳細は投稿 。参照: macOSのDockerデーモンに接続できません
詳細な調査の結果、この問題はMac OS Xが再起動されるたびに(またはDocker仮想マシンが再起動される)発生するようで、DockerクライアントがDockerデーモンに接続できません。
この問題を解決するには、次のいずれかの方法があります。
A)公式のインストーラ( https://www.docker.com/products/docker-toolbox )を使用してDocker Toolboxを再インストールするか、単に
B)次のコマンドを順番に実行します。
# First make sure that the virtual machine is running
docker-machine start default
# Regenerate TLS connection certs, requires confirmation
docker-machine regenerate-certs default
# Finally, set env
eval "$(docker-machine env default)"
C)(B)と同じですが、次の行をコピーして貼り付けて3つのコマンドをすべて実行することもできます。
docker-machine start default; docker-machine regenerate-certs default; eval "$(docker-machine env default)"
以下のエラーが発生した場合
Error getting SSH command: Something went wrong running an SSH command!
command : cat /etc/os-release
err : exit status 255
output :
もう一度3つのコマンドを再実行するだけで、2回目でうまくいくはずです。
これは通常あなたがdocker
グループにいないときに起こります。次のようにして自分自身をdocker
グループに追加することができます。
Sudo usermod -aG docker yourusername
または
Sudo usermod -aG docker $(whoami)
その後、ログアウトしてサーバーに再度ログインする必要があります。
あるいは、DockerコマンドごとにSudo
を実行することもできます。
上記の他の解決法がすべてうまくいかない場合は、/var/run/docker.sock
の所有権を確認してみてください。
ls -l /var/run/docker.sock
あなたが所有者ではない場合は、次のコマンドで所有権を変更します。
Sudo chown *your-username* /var/run/docker.sock
それなら、Dockerコマンドを簡単に実行してみてください。D
Dockerが機能していない理由を見つける最善の方法は、デーモンを手動で実行することです。
$ Sudo service docker stop
$ ps aux | grep docker # do this until you don't see /usr/bin/docker -d
$ /usr/bin/docker -d
DockerデーモンはSTDOUTにログを記録するので、実行しているものは何でも吐き出します。
これが私の問題でした。
[8bf47e42.initserver()] Creating pidfile
2015/01/11 15:20:33 pid file found, ensure docker is not running or delete /var/run/docker.pid
これは、インスタンスが別の仮想マシンから複製されたためです。 pidfileを削除するだけで、あとはすべてうまくいきました。
もちろん、これが機能すると盲目的に仮定するのではなく、サービスをバックアップする前にもう一度デーモンを手動で実行し、他のエラーについてログ出力を確認することをお勧めします。
メッセージCan't connect to docker daemon. Is 'docker -d' running on this host?
が表示されたら、docker version
で確認できます。
のような情報が表示された場合は、Docker Clientが実行されています。 Dockerサーバーはそうではありません 、Dockerサーバーを起動する必要があることは明らかです。
CentOSでは、service
を使ってDockerサーバーを起動または停止することができます。
$ Sudo service docker stop
$ Sudo service docker start
docker version
と入力すると、 Docker ClientとDocker Server の情報が表示され、Dockerデーモンが起動されます。
インストール後にDockerを再起動します。
$ Sudo service docker stop
$ Sudo service docker start
そしてそれはうまくいきます。
デーモンが実行されているかどうかを確認するには、ps aux | grep docker
を実行します。実行されていない場合は/etc/init.d/docker start
私はこの問題に直面しました、そして私はこれらのコマンドを使ってDockerを再起動しました:
$ Sudo service docker stop
$ Sudo service docker start
しかし、Sudo
なしでDockerコマンドを実行するのを忘れたため、私は自分の問題を解決しませんでした。この問題に直面している人のために、それをチェックしてみてください。
やってみる
$ Sudo docker info
これの代わりに:
$ docker info
私は同様の問題を抱えています。 Dockerをインストールしたばかりで、次のコマンドが自分の環境に表示されないため、ログアウトしてから再度シェルにログインする必要がありました。
export DOCKER_Host=127.0.0.1:4243 >> ~/.bashrc
私は同じエラーがあり、docker-machine regenerate-certs
やeval..
を試してもうまくいきませんでした。
これはOS X 10.11.3(El Capitan)とDocker v1.10.1でのものです。再度docker-machineを削除して再作成するだけで修正できました。 出典
docker-machine ls
を実行すると、以下のような出力が表示されます。
ドッカー
道の
エラー
Dockerのバージョンを照会できません:dockerエンジンのエンドポイントに接続できません。
でDockerマシンを取り外してみてください。
docker-machine rm -f default
default
はあなたのDockerマシン名です。それでは。
docker-machine create -d virtualbox default
新しいDockerマシンを作成します。
次のコマンドを使用して、すべてが正常になっていること(エラーや不明なDockerがないこと)をもう一度確認します。
docker-machine ls
最後に、続行する前に"$(docker-machine env default)"
を実行するか、それを実行するDocker Quickstart Terminalを実行することを忘れないでください。
現在のユーザーをdocker
グループに追加してみてください。
Sudo usermod -aG docker $USER
次にログアウトしてログインします。
私は同じ問題を抱えていた - "docker daemonに接続できません。" (サーバーを起動しようとしたときに「ファイルが見つかりません」というエラーが表示されなかったことを除く)
'ps'は、 "/ usr/bin/docker -d"がまだ実行中であることを示しました
私は実際に自分でサーバーを実行することに成功したことはないだろうと気づきました。あらゆる試みが生み出された
...
2014/03/24 21:57:29 pid file found, ensure docker is not running or delete /var/run/docker.pid
そのため、dockerをインストールすることでデーモンがupstartに登録され、それによって私のためにデーモンが起動された可能性があることに気付きました。したがって、手動で再起動するためにデーモンを強制終了しようとしても失敗します(操作は許可されていません)。だから私はしました
Sudo kill -9 <PID>
デーモンプロセスで。別のデーモンがすぐに代わりになりました、そしてこの新しいものは今私のCLIクライアントを接続させますDOES:
$ Sudo docker info
Containers: 0
Images: 0
Driver: aufs
Root Dir: /var/lib/docker/aufs
Dirs: 0
WARNING: No memory limit support
WARNING: No swap limit support
私は Amazon AWS で実行して、同じ問題を抱えていました。
これが私が試みたものです:
docker-machine
をローカルにセットアップするdockerd
を実行してもうまくいきませんでした...リモートマシン上で次のようにテストされました。
service docker start # Also restart, no success
systemctl start docker # Also restart, no success
dockerd # Success
/var/lib/docker
を削除してすべてをアンインストールしましたが、再インストール後に成功しませんでした。残念ながら私は失敗から保存されたログを持っていません、しかしdocker.service
は開始を拒否しました。
しかし、私の問題を最終的に解決したのは、基本的に次のとおりです。
Sudo usermod -aG docker $(whoami)
Dockerツールを使用してOS Xで実行している場合は、これに従ってください。
デーモンを再起動して環境を設定します。
docker-machine restart
その後
docker-machine env
最後に、
eval $(docker-machine env)
デーモンをテストするには:
docker ps -a
またはdocker-machine ls
。これですべてのコンテナが一覧表示されます。
この投稿にはすでにたくさんの答えがあることを知っていました。上記の問題を解決する1つの簡単な答えを追加したいと思います。
Sudo systemctl start docker
上記のコマンドを実行すると、すべてのドッカー関連のスレッド/サービスが開始されます。
DockerのDOCサイトをフォローする: 非rootユーザーとしてDockerを管理する
1)Dockerグループを作成する
Sudo groupadd docker
2)ユーザーをdockerグループに所属させて、そのグループの特権を取得します。
Sudo usermod -aG docker $USER
シェルにDOCKER_Host環境変数が設定されているかどうかを確認してください。
env | grep DOCKER_Host
存在する場合
unset DOCKER_Host
それからこれはうまくいくはずです:
docker run hello-world
MacOS用の新しいDocker Community Editionアプリを使用してください。例えば:
これまでにインストールしたすべてのDocker Homebrewパッケージをアンインストールします。
brew uninstall docker-compose
brew uninstall docker-machine
brew uninstall docker
アプリをインストールします 手動 または /Homebrew-Cask :
brew cask install docker
注:このアプリはdocker
、docker-compose
、docker-machine
などへの必要なリンクを作成します。
アプリを実行した後、ステータスメニューのDockerクジラのアイコンをチェックしてください。
docker
、docker-compose
、docker-machine
コマンドを使用できるはずです。関連する
ダウンロードページから Docker CEをダウンロードします そして指示に従います。
私は同じ問題を抱えています。 CentOS 6.5の場合:
ps aux |grep `cat /var/run/docker.pid`
Dockerデーモンプロセスが存在しないことが示された場合は、次のように入力します。
docker -d
それから Ctrl + D Dockerを停止します。 -d
オプションを使用しているので、Dockerはデーモンとして動作します。今私達はすることができます:
service docker start
それで私はdocker pull centos
を実行できます。それで全部です。
注:これらが機能しない場合は、yum update
を試してから、もう一度繰り返すことができます。これらの前にyum install
があるからです。
修正するには、端末で次のコマンドを発行する必要があります。各ステップについて説明します。
# Uninstall Docker from apt packages
$ Sudo apt-get remove docker docker.io
# Remove it from the libraries just to be
# sure it's gone forever
$ Sudo rm -rf /var/lib/docker/*
さて、あなたが物事を単純化してもっと時間を取りたいのなら、あなたは私の init
script をパラメータinstallDocker
で実行することができます:
# Pull the init script from GitHub
$ wget https://github.com/dminca/dotfiles/blob/master/init
# Add rights to run the script
$ chmod 755 init
# Just run the script with the installDocker parameter
$ ./init installDocker
再起動はオプションですが、すべてがスムーズに実行されるようにすることをお勧めします。
Dockerサービス が実行されていない可能性があります。
RedHat/Fedora/CentOSをお使いの場合は、以下を試してください。
Sudo systemctl start docker
Ubuntu/Debianを使っているのなら:
Sudo service start docker
Dockerはあなたのホストとそれぞれのポートで動き始めます。
Ubuntu 14.04でDocker 1.10を実行しても同じ問題が発生しましたが、回答がどれもうまくいきませんでした。私にとっては、Dockerデーモンの実行時にストレージドライバーを指定することで解決しました。
Sudo docker daemon --storage-driver=devicemapper
Docker Machineを使用しているかどうかを確認してください:)
docker-machine env default
を実行するとうまくいくはずです。
ドキュメントによると:
Docker Machineは仮想ホストにDocker Engineをインストールし、
docker-machine
コマンドでホストを管理するためのツールです。あなたはあなたの[Mac]または[Windows]ボックス、あなたの会社のネットワーク、あなたのデータセンター、あるいはAWSやDigital Oceanのようなクラウドプロバイダ上でDockerホストを作成するためにMachineを使うことができます。 。
docker-machine
コマンドを使用すると、管理対象ホストの起動、検査、停止、および再起動、Dockerクライアントとデーモンのアップグレード、およびホストと通信するようにDockerクライアントを構成することができます。Machine CLIを実行中の管理対象ホストに向け、
docker
コマンドをそのホスト上で直接実行できます。たとえば、docker-machine env default
を実行してdefault
という名前のホストを指定し、画面上の指示に従ってenv
の設定を完了し、docker ps
、docker run hello-world
などを実行します。
あなたはコマンドを使用することができます
Sudo service docker stop
Sudo service docker start
それを単に始めるために。
また、「Dockerデーモンに接続できません。dockerデーモンはこのホストで実行されていますか」という問題もあります。
私はSudo
を使うのを忘れていました。それが私たちの何人かに役立つことを願っています。
$:docker images
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
$:Sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
さて、私は今日この問題を抱え始めました。それから私は多くの反応を見ました、しかし、どれも私のために働かなかったようです。最初の指示の大部分はLinux向けです。そしてMac版では、彼ら全員が 'docker-machine'の実行について話していました。 docker toolboxをインストールする場合は、docker-machineを使用すると思います。これは、dockerがwindowsおよびmacプラットフォーム用の仮想マシンで実行されるためです。しかし、その2017年の現在およびMac用のdockerは本当に安定しているため、ツールボックスを使用する必要はありません。
デーモンがどのように停止したのかわかりません。しかしそれを再開するために私がしなければならなかったすべては「アプリケーション」に行きそしてdockerアイコンをダブルクリックすることだけだった。私は更新するように頼まれ、私は受け入れた再起動しました。その後、すべてが魅力的になりました。
docker-network
内のdocker
または/etc/sysconfig
のDocker設定ファイルを変更してみます。
(...〜v1.17)
docker
ファイル:OPTIONS= -H fd://
または(v1.18):
docker-network
ファイル:DOCKER_NETWORK_OPTIONS= -H unix:///var/run/docker.sock
TLS証明書の再生成がうまくいかない場合
docker-machine regenerate-certs default
Docker machineを再起動してenv変数を設定してみてください。
docker-machine restart default
eval $(docker-machine env default)
マシンが稼働しているかどうかを確認します。
docker-machine ls
または代わりに
docker run hello-world
これは私のために働きました。それでもデーモンが起動していない場合は、 Dockerのトラブルシューティングページ で新しいマシンの停止、削除、作成のプロセスについて詳しく説明してください。
私は同様の問題を抱えていました。
私の場合、解決策は非推奨バージョンのdockerを削除することでした。これは私がいくつかの衝突を引き起こしていたと思います。
Ubuntuの場合:
Sudo apt remove docker
私のために問題を解決しました
次のコマンドでデーモンを実行できます。
Sudo Nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock &
スクリプトはデーモンをバックグラウンドで実行したままにします。Dockerの準備が整ったら、コマンドを受け付けていることをテストできます。
Sudo docker info
詳細はこちらをご覧ください。 https://www.upcloud.com/support/how-to-configure-docker-swarm/ /
誰もこれに答えていません
Sudo docker network create persistence_backend
両方のdockerとdocker-composeを実行している場合
電源を入れ直してみましたか。 :-)
私のMacでDocker 1.10.1にアップグレードした後も同じ問題がありました。
Dockerクイックスタートターミナル
$ exit
$ exit
それから
docker-machine killのデフォルト
その後Docker Quickstart Terminalを再起動しました
これで私の問題は解決した。
Mac OS-Xでは、これは単にdockerのインストールが古くなっているか、実行されていないことを意味します。公式サイトから最新のdockerをダウンロードしてインストールするだけです。
私のために働きました。
Gitlab-ci/gitlab-runnersを使用している場合、/var/run/docker.sock
にアクセスする権限がないと、このエラーが発生します。
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
この問題を解決するために:
Sudo usermod -aG docker gitlab-runner
で確認してください。
Sudo -u gitlab-runner -H docker info
それが役立つことを願っています。