GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

NFS-Docker-Volumes:Erstellen und Verwenden

Einführung

Docker-Volumes sind der bevorzugte Mechanismus zum Einrichten von dauerhaftem Speicher für Ihre Docker-Container. Volumes sind vorhandene Verzeichnisse auf dem Host-Dateisystem, die in einem Container gemountet sind. Auf sie kann sowohl vom Container als auch vom Hostsystem aus zugegriffen werden.

Docker ermöglicht es Benutzern auch, Verzeichnisse zu mounten, die über das NFS-Remote-Dateifreigabesystem freigegeben wurden. Die zu diesem Zweck erstellten Volumes verwenden den Docker-eigenen NFS-Treiber, sodass das NFS-Verzeichnis nicht mehr auf dem Hostsystem gemountet werden muss.

Dieses Tutorial zeigt Ihnen, wie Sie NFS-Docker-Volumes erstellen und verwenden.

Voraussetzungen

  • NFS-Server auf dem Remote-Rechner installiert und konfiguriert.
  • Docker auf dem lokalen Computer installiert.
  • Ein Benutzerkonto mit Root-/Sudo-Berechtigungen.

NFS-Docker-Volume erstellen

Die einfachste Möglichkeit zum Erstellen und Verwalten von Docker-Volumes ist die Verwendung des docker volume Befehl und seine Unterbefehle.

Die Syntax zum Erstellen eines NFS-Docker-Volumes umfasst zwei Optionen.

  1. Der --driver Option definiert den local Volume-Treiber, der ähnliche Optionen wie mount akzeptiert Befehl unter Linux.
  2. Die --opt Die Option wird mehrmals aufgerufen, um weitere Details zum Volume bereitzustellen.

Die Details umfassen:

  • Der Volume-Typ.
  • Der Schreibmodus.
  • Die IP- oder Webadresse des entfernten NFS-Servers.
  • Der Pfad zum freigegebenen Verzeichnis auf dem Server.
docker volume create --driver local \
  --opt type=nfs \
  --opt o=addr=[ip-address],rw \
  --opt device=:[path-to-directory] \
  [volume-name]

Das folgende Beispiel veranschaulicht das Erstellen eines NFS-Docker-Volumes mit dem Namen nfs-volume . Das Volume enthält /mnt/nfsdir Verzeichnis auf dem Server, mit dem rw (Lesen/Schreiben)-Berechtigung. Die IP-Adresse des Servers ist 10.240.12.70 .

Der erfolgreich ausgeführte Befehl gibt den Namen des Volumes aus.

Listen Sie die verfügbaren Docker-Volumes auf.

docker volume ls

Die Ausgabe listet das von Ihnen erstellte Volume auf.

Untersuchen Sie das Volume mit inspect Unterbefehl.

docker volume inspect [volume-name]

Die Ausgabe zeigt die Lautstärkekonfiguration.

NFS in einem Container bereitstellen

Um das NFS-Volume in einen Container einzubinden, installieren Sie nfs-common Paket auf dem Hostsystem.

Beginnen Sie mit der Aktualisierung der Repositories.

sudo apt update

Verwenden Sie APT, um nfs-common zu installieren Paket.

sudo apt install nfs-common

Bestätigen Sie, dass Sie das Paket installieren möchten, und warten Sie, bis die Installation abgeschlossen ist.

Verwenden Sie den docker run-Befehl, um den Container zu starten. Geben Sie das NFS-Volume und den Einhängepunkt in --mount an Abschnitt.

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

Das folgende Beispiel stellt das NFS-Volume mit dem Namen nfs-volume bereit in /mnt Verzeichnis im Container.

Bestätigen Sie, dass das Volume erfolgreich gemountet wurde, indem Sie docker inspect verwenden Befehl.

docker inspect [container-name]

Die Mounts Abschnitt der Ausgabe enthält die in den Container gemounteten Volumes.

Rufen Sie die Bash-Shell der Containerumgebung mit docker exec auf :

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

Listen Sie den Inhalt von /mnt auf Verzeichnis.

ls /mnt

Die Ausgabe zeigt die Dateien, die in /mnt/nfsdir gehostet werden Verzeichnis auf dem Server.

Wenn Sie eine Datei im Docker-Container erstellen, ist sie auch im ursprünglichen Verzeichnis auf dem Server zugänglich. Verwenden Sie zum Testen den touch-Befehl, um eine leere Datei in /mnt zu erstellen Verzeichnis.

touch /mnt/docker1.txt

Navigieren Sie auf dem Server zu dem von Ihnen freigegebenen Verzeichnis und listen Sie dessen Inhalt auf. Die im Docker-Container erstellte Datei wird angezeigt.

Einhängen von NFS-Volumes mit Docker Compose

Wenn Sie Docker Compose zum Verwalten Ihrer Container verwenden, hängen Sie das NFS-Volume ein, indem Sie es in der YML-Datei definieren.

Erstellen Sie die YML-Datei.

nano docker-compose.yml

Definieren Sie das NFS-Volume in volumes Abschnitt.

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]"

Erstellen und starten Sie den Container mit docker-compose up Befehl.


Ubuntu
  1. So richten Sie eine private Docker-Registrierung ein und verwenden sie

  2. Docker-Volumes:Erstellen und loslegen

  3. So erstellen und verwenden Sie Subdomains

  4. So installieren und verwenden Sie Docker in Ubuntu 20.04

  5. Was sind Docker-Volumes und wie verwenden Sie sie?

So installieren und verwenden Sie Docker Compose unter Debian 9

So installieren und verwenden Sie Docker-Compose unter CentOS 7

So erstellen und verwenden Sie benutzerdefinierte Fakten in Ansible

So erstellen und verwenden Sie eine Auslagerungsdatei unter Linux

So installieren und verwenden Sie Docker unter Ubuntu 22.04

So installieren und verwenden Sie Docker unter AlmaLinux 8