web-dev-qa-db-ja.com

CoreOSでNFS共有の上にDockerイメージを配置する方法は?

CoreOSをインストールしました。デフォルトでは、サイズが100GBのループバックデバイスを使用しており、その制限に簡単に達しました。

私の最初のアイデアは、すべての画像を私のNAS NFSを使用して/var/lib/dockerディレクトリの上に単にマウントするだけで成功することなくマウントすることでした。

今、私はこれを見つけました article そして、DockerがCoWスナップショットを使用するために、あらゆる種類のストレージの上に何らかの方法でブロックデバイスを作成するように見えます。最初のショットは、NFS共有をイメージディレクトリの上にマウントするだけです。それは一種の私を驚かせます。ストレージのネイティブスナップショットで純粋なNFSを使用しないのはなぜですか?これを行うことの良い説明があればいいのですが。とにかく、この変なことをする必要があります。私はdockerとCoreOSを使い始めたばかりで、これを正しく行う方法がわかりません。だから問題は:NFS共有をマウントしてCoreOS上のすべてのイメージに使用する方法

4
BBK

良い知らせです、あなたは最初に実行する必要がある人ではありません this 。 Dockerは、直接NFSを使用できません。カーネル機能、SELinuxコンテキストなどのオプションを格納できるようにするには、拡張属性(xttrs)の両方のサポートが必要です。デバイスマッパーを使用してリモートストレージに仮想化ブロックデバイスを作成することにより、偽造することで、セカンダリメカニズムを介してDockerを利用するために必要なカーネルメカニズムを提供します。これはdm.loopdatasizeオプション 、彼らはDockerページで明示的に指摘している"Note: This option configures devicemapper loopback, which should not be used in production.".

結局、これは基礎となるストレージの要件に帰着します。 Dockerはカーネルが提供するメカニズムを使用しているだけで、それ自体では魔法を使用していません。

1
Brian Redbeard