2016-08-28 4 views
1

RHEL 6.7でdocker 1.7.1、build 786b29dを実行しています。最近、ドッカーデーモンがロックされたときに何度も何度も起きていました。マシンをリブートして戻す必要がありました。再起動が必要なドッカー吊り下げ

典型的なシナリオは、数週間にわたって正常に動作していたコンテナが突然エラーをスローすることです。いつか我々はコンテナを再起動することができ、すべてがうまくいきます。しかし、他の回は、すべてのドッキングウィンドウのコマンドがハングアップし、デーモンが失敗し、再起動、と私は、psでこれを参照してください。私が見てきたシステムログに探し

4 Z root 4895 1 0 80 0 - 0 exit Aug23 ? 00:01:24 [docker] 

この:

device-mapper: ioctl: unable to remove open device docker-253:6-1048578-317bb6ad40cded3fbfd752d95551861c2e4ef08dffc1186853fea0e85da6b12b 
INFO: task docker:16676 blocked for more than 120 seconds. 
Not tainted 2.6.32-573.12.1.el6.x86_64 #1 
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. 
docker D 000000000000000b 0 16676 1 0x00000080 
ffff88035ef13ea8 0000000000000082 ffff88035ef13e70 ffff88035ef13e6c 
ffff88035ef13e28 ffff88062fc29a00 0000376c85170937 ffff8800283759c0 
0000000000000400 00000001039d40c7 ffff8803000445f8 ffff88035ef13fd8 
Call Trace: 
[] _mutexlock_slowpath+0x96/0x210 
[] ? wake_up_process+0x15/0x20 
[] mutex_lock+0x2b/0x50 
[] sync_filesystems+0x26/0x150 
[] sys_sync+0x17/0x40 
[] system_call_fastpath+0x16/0x1b 

最新ドッカーのバージョンは1.12.1で、1.7.1を使用しています。新しいバージョンをインストールすることはできますか? 1.7.1はyumのインストールバージョンです。もし私が新しいバージョンを望むなら、どうすればそれをインストールすればよいのですか(それはちょっとした質問ですみません、私はsysの管理者ではありません)。

グーグルでは、Red Hatサイトでこれを見つけました。「RHEL 6リリースでは、どのバージョンのDockerも実行しないことをおすすめします。私たちは数年前からRHEL 6でドッカーを稼働させていたので、これは私を混乱させます。 RHEL 7へのアップグレードは、現時点では当然の選択肢ではありません。

誰でもこれらの問題を解明できますか?ドッカーを頻繁に再起動することなく、確実に動作させる必要があります。

答えて

1

Docker 1.7.1は今日の標準では本当に古いです。ドライバスタックの拡張、セキュリティパッチ、それ以降のバージョンで追加された貴重な機能については、何百ものバグが修正されています。ストレージスタックに問題があるようですが、これは新しいバージョンで修正される可能性があります。

Dockerは、yumaptのようなパッケージ管理システムのデフォルトバージョンは古くなり、そのレポを使用するべきだと述べています。これを行う最善の方法は、Yumリポジトリの情報をシステムに追加して、他のパッケージのようにインストールできるようにすることです。指示はInstallation on Red Hat Enterprise Linuxです。

注:Dockerをインストールするとサービスはdockerとなりますが、パッケージはdocker-engineとなります。これは過去にいくつかの人々を混乱させました。

+0

情報をいただきありがとうございます。 RHEL 6で最新かつ最高のものをインストールすることができますか、またはそこで実行される特定のバージョンまでしかインストールできませんか? –

+1

[RHEL6サポートはDocker 1.8から削除されました](http://stackoverflow.com/a/37450607/1318694) – Matt

1

がRHEL6ベースのシステムを使用しないでください。

yum install docker-engine 

ドッカーも(管理者/ルートとして実行)物事を簡単にするために、この処理を行うスクリプトを提供してきました。

RHEL6では、2.6カーネルを使用してバックポート修正が行われ、Dockerは動作し続けます。ドッカーは、通常、3.10 +カーネルが必要です。 Docker dropped support for RHEL6 v1.8以降では、それ以上のパッケージはありません。

RHEL6を使用する必要がある場合は、保管のためにdon't use the default loopback devicemapperを使用してください。 Docker用のLVMシンプールを使用するように設定します。

関連する問題