Docker ComposeでNFSをマウントしてみる

環境

  • ホストOS: CentOS7
  • コンテナイメージ: Ubuntu 22.04

今回は簡易的にCentOS7のホスト上にあるボリュームをコンテナからNFS経由でマウントする方式で検証したので記録に残しておきます。

ホスト側の準備

検証のため簡易的な設定にします。

インストール〜起動設定

sudo yum install nfs-tools
sudo systemctl start nfs
sudo systemctl start rpcbind
sudo systemctl enable nfs
sudo systemctl enable rpcbind

NFS設定

sudo mkdir /nfs # マウントするディレクトリを作成
sudo vim /etc/exports

以下を追加

/nfs *(rw,no_root_squash)

※検証のため/nfsディレクトリにどのホストからでも書き込み読み込みができる設定にしました。本番で使う際は適切に設定するようにしましょう。

設定を反映

sudo exportfs -ra

Docker Compose側の準備

このような感じで設定します。

services:
  app:
    image: appimage
    volumes:
      - nfs-volume:/tmp/volumes

volumes:
  nfs-volume:
    driver_opts:
      type: nfs
      o: "addr=127.0.0.1,rw,nfsvers=4"
      device: ":/nfs"

詳細な設定については以下ドキュメントをご参照ください

https://docs.docker.jp/compose/compose-file/compose-file-v3.html?highlight=nfs#driver-opts https://docs.docker.jp/storage/volumes.html