GNU/Linux >> Linux の 問題 >  >> Ubuntu

NFS Dockerボリューム:作成および使用方法

はじめに

Dockerボリュームは、Dockerコンテナーの永続ストレージをセットアップするための推奨メカニズムです。ボリュームは、コンテナ内にマウントされたホストファイルシステム上の既存のディレクトリです。コンテナとホストシステムの両方からアクセスできます。

Dockerを使用すると、ユーザーはNFSリモートファイル共有システムを介して共有されるディレクトリをマウントすることもできます。この目的で作成されたボリュームは、Docker独自のNFSドライバーを使用するため、ホストシステムにNFSディレクトリをマウントする必要がありません。

このチュートリアルでは、NFSDockerボリュームを作成して使用する方法を説明します。

前提条件

  • リモートマシンにインストールおよび構成されたNFSサーバー。
  • ローカルマシンにインストールされたDocker。
  • root/sudo権限を持つユーザーアカウント。

NFSDockerボリュームの作成

Dockerボリュームを作成および管理する最も簡単な方法は、 docker volumeを使用することです。 コマンドとそのサブコマンド。

NFS Dockerボリュームを作成するための構文には、2つのオプションが含まれています。

  1. -ドライバー オプションはローカルを定義します mountと同様のオプションを受け入れるボリュームドライバー Linuxのコマンド。
  2. -opt ボリュームに関する詳細を提供するために、オプションが複数回呼び出されます。

詳細は次のとおりです。

  • ボリュームタイプ。
  • 書き込みモード。
  • リモートNFSサーバーのIPアドレスまたはWebアドレス。
  • サーバー上の共有ディレクトリへのパス。
docker volume create --driver local \
  --opt type=nfs \
  --opt o=addr=[ip-address],rw \
  --opt device=:[path-to-directory] \
  [volume-name]

以下の例は、 nfs-volumeという名前のNFSDockerボリュームの作成を示しています。 。ボリュームには、 / mnt / nfsdirが含まれています rwを含むサーバー上にあるディレクトリ (読み取り/書き込み)権限。サーバーのIPアドレスは10.240.12.70です。

正常に実行されたコマンドは、ボリュームの名前を出力します。

利用可能なDockerボリュームを一覧表示します。

docker volume ls

出力には、作成したボリュームが一覧表示されます。

inspectでボリュームを検査します サブコマンド。

docker volume inspect [volume-name]

出力にはボリューム構成が表示されます。

コンテナにNFSをマウントする

NFSボリュームをコンテナにマウントするには、 nfs-commonをインストールします ホストシステム上のパッケージ。

リポジトリを更新することから始めます。

sudo apt update

APTを使用してnfs-commonをインストールします パッケージ。

sudo apt install nfs-common

パッケージをインストールすることを確認し、インストールが完了するのを待ちます。

docker runコマンドを使用して、コンテナーを開始します。 -mountでNFSボリュームとマウントポイントを指定します セクション。

docker run -d -it \
  --name [container-name] \
  --mount source=[volume-name],target=[mount-point]\
  [image-name]

以下の例では、 nfs-volumeという名前のNFSボリュームをマウントします / mnt コンテナ内のディレクトリ。

docker inspect を使用して、ボリュームが正常にマウントされたことを確認します コマンド。

docker inspect [container-name]

マウント 出力のセクションには、コンテナにマウントされたボリュームが含まれています。

docker execを使用してコンテナ環境のbashシェルに入ります

docker exec -it [container-name] /bin/bash

/ mntの内容を一覧表示します ディレクトリ。

ls /mnt

出力には、 / mnt / nfsdirでホストされているファイルが表示されます サーバー上のディレクトリ。

Dockerコンテナ内にファイルを作成すると、サーバーの元のディレクトリからもアクセスできるようになります。テストするには、touchコマンドを使用して / mntに空のファイルを作成します ディレクトリ。

touch /mnt/docker1.txt

サーバーで、共有したディレクトリに移動し、その内容を一覧表示します。 Dockerコンテナに作成されたファイルが表示されます。

DockerComposeを使用したNFSボリュームのマウント

Docker Composeを使用してコンテナーを管理する場合は、YMLファイルで定義してNFSボリュームをマウントします。

YMLファイルを作成します。

nano docker-compose.yml

ボリュームでNFSボリュームを定義します セクション。

version: "3.2"

services:
  [service-name]:
    image: [docker-image]
    ports:
      - "[port]:[port]"

    volumes:
      - type: volume
        source: [volume-name]
        target: /nfs
        volume:
          nocopy: true
volumes:
  [volume-name]:
    driver_opts:
      type: "nfs"
      o: "addr=[ip-address],nolock,soft,rw"
      device: ":[path-to-directory]"

docker-compose upを使用してコンテナを作成して起動します コマンド。


Ubuntu
  1. サブドメインを作成して使用する方法

  2. Ubuntu20.04にDockerをインストールして使用する方法

  3. Dockerボリュームとは何ですか?また、それらをどのように使用しますか?

  1. プライベートDockerレジストリを設定して使用する方法

  2. Dockerボリューム:作成して開始する方法

  3. Kubernetesシークレット–シークレットを作成、使用、アクセスする方法

  1. Jenkins共有ライブラリ:作成、構成、および使用方法

  2. Ubuntu20.04にDockerをインストールして使用する方法

  3. Ubuntu18.04にDockerをインストールして使用する方法