tmpfs マウントの使用¶
ボリューム と バインド マウント はホストマシンとコンテナ間でファイルを共有できるようにするため、コンテナを停止した後もデータを保持できます。
Linux 上で Docker を動かしている場合は、3つめのオプション tmpfs マウントがあります。 tmpfs マウントを使ってコンテナを起動すると、コンテナの書き込み可能なレイヤーの外で、コンテナはファイルを作成できます。
ボリュームやバインドマウントとは違い、 tmpfs マウントは一時的なもので、ホストメモリ上にのみ保持します。コンテナを停止すると、 tmpfs マウントは削除され、また、書き込まれたデータは保持されません。
ホスト上やコンテナの書き込み可能なレイヤーのどちらにも保持したくない、機微ファイルの一時的な保存に便利です。
tmpfs マウントの制限¶
ボリュームやバインド マウントとは異なり、コンテナ間で
tmpfsマウントを共有できません。この機能は、 Linux 上で Docker を実行している場合のみ利用できます。
--tmpfs か --mount フラグの選択¶
一般的に、 --mount は明示的で冗長です。最も大きな違いは、 --tmpfs は設定用オプションのフラグをサポートしていません。
--tmpfs:tmpfsマウントのマウントは、設定用オプションの指定ができません。また、スタンドアロン コンテナにのみ利用できます。
--mounts:複数のキーバリューのペアで構成され、各<key>=<value>の組み合わせは、カンマで区切ります。--mount構文は--tmpfsよりも冗長です。マウント
type(型)はbind、volume、tmpfsです。このトピックではtmpfsを扱うため、マウント型は常にtmpfsです。destinationの値は、tmpfsがコンテナ内のどこにマウントするかのパスを指定します。指定はdestination、dst、targetのいずれかです。tmpfs-sizeとtmpfs-modeオプションがあります。 tmpfs オプション をご覧ください。
以下の例では --mount と --tmpfs 構文の両方が出てきますが、利用可能な場合は --mount が始めに出ます。
--tmpfs と --mount との挙動の違い¶
--tmpfsフラグには、設定可能なオプションはありません。--tmpfsフラグは swarm サービスに使えません。 その場合は--mountを使います。
tmpfs マウントをコンテナで使用¶
コンテナで tmpfs マウントを使うには、 --tmpfs フラグを使うか、 --mount フラグで type=tmpfs と destinaiton オプションを使います。 tmpfs マウントには source がありません。以下の例は Nginx コンテナ内の /app に tmpfs マウントを作成します。1つめの例は --mount フラグを使い、2つめは --tmpfs フラグを使います。
--mount$ docker run -d \ -it \ --name tmptest \ --mount type=tmpfs,destination=/app \ nginx:latest
--tmpfs$ docker run -d \ -it \ --name tmptest \ --tmpfs /app \ nginx:latest
tmpfs マウントを確認するには、 docker container inspect tmptest を実行し、 Mounts セクションをさがします。
"Tmpfs": {
"/app": ""
},
コンテナを削除します。
$ docker container stop tmptest
$ docker container rm tmptest
tmpfs オプションの指定¶
--tmpfs マウントは2つの設定可能なオプションがあり、どちらも必須ではありません。それぞれのオプションを指定する必要があれば、 --mount フラグを使う必要があります。 --tmpfs フラグはオプション指定をサポートしていません。
オプション |
説明 |
|---|---|
|
tmpfs マウントの容量をバイトで指定。デフォルトは無制限 |
|
tmpfs のファイルモードを8進数で指定。たとえば、 |
以下の例は tmpfs-mode を 1770 に設定しますので、コンテナ内では誰でも読み込みできません(world-readable ではありません)。
$ docker run -d \
-it \
--name tmptest \
--mount type=tmpfs,destination=/app,tmpfs-mode=1770 \
nginx:latest
次のステップ¶
ボリューム について学ぶ
バインド マウント について学ぶ
ストレージ ドライバ について学ぶ
参考
- Use tmpfs mounts