web-dev-qa-db-ja.com

Dockerはupstartで管理されています。サービスdockerを使用してみてください

私は次のシステムを使用しています:

root@alexus:~# cat /etc/issue.net 
Ubuntu 14.04.3 LTS
root@alexus:~# uname -a
Linux alexus 3.13.0-57-generic #95-Ubuntu SMP Fri Jun 19 09:28:15 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
root@alexus:~# 

cron jobdocker service[〜#〜] is [〜#〜]実行しており、実行されていない場合は開始します。

root@alexus:~# crontab -l | grep 'service docker'
*/5 * * * * service docker status | grep -q 'docker\ start\/running\,\ process\ .*' ; if [ $? != 0 ] ; then service docker start ; fi
root@alexus:~# 

それでもcronから受け取るメッセージは次のとおりです。

  • Dockerはupstartで管理されています。サービスdockerを使用してみてください

また、シェルで直接実行した場合、出力は得られません。

root@alexus:~# service docker status | grep -q 'docker\ start\/running\,\ process\ .*' ; if [ $? != 0 ] ; then service docker start ; fi
root@alexus:~# 

なぜcron経由でそのメッセージを受け取っているのに、シェルで直接実行しても何も得られないのはなぜですか?私はそれを間違った方法でやっていますか?それを達成する適切な方法は何ですか?

1
alexus

現在の Docker 1.9.1 + Linuxカーネルバグ1818 は、AUFSに関連するLinuxカーネルバグに深く埋まっているため、Docker 1.9.1のUbuntu 14.04インストールをDockerに移行することを検討していました。 1.8.3。ただし、aptインストーラーが実行するように、起動時に自動起動します。

そのため、Docker 1.8.3バイナリを_https://get.docker.com/builds/Linux/x86_64/docker-1.8.3_から取得し、_/usr/bin/docker_に移動して、_Sudo chmod +x /usr/bin/docker_実行可能権限を付与しました。

次に、生の _sysvinit-debian/docker_ スクリプトを取得し、check_init()本体をコメントアウトして(不要な悲しみを与えていた)、単に"echo 'Skipping check_init()"そして、それを_/etc/init.d_にドロップしました。次に、_ln -s /etc/init.d/docker /etc/rc2.d/S99docker_を使用してルートとしてブートスタートアップで実行するようにそのスクリプトを設定し、_Sudo reboot_を実行しました。その後、ブート時にDocker(1.8.3)サービスを生のバイナリインストールから実行します。

_$ service docker status
 * Docker is running
_

ここではすべてが良さそうです-_$ docker run -it hello-world_も正しく実行できるようになり、18180が修正されるまで動き続けます。

2
Mike Atlas