私は次のシステムを使用しています:
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 job
docker 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経由でそのメッセージを受け取っているのに、シェルで直接実行しても何も得られないのはなぜですか?私はそれを間違った方法でやっていますか?それを達成する適切な方法は何ですか?
現在の 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が修正されるまで動き続けます。