Docker ist ein offenes Plattformverwaltungstool für Linux-Container. Es bietet Entwicklern und Systemadministratoren die Möglichkeit, Anwendungen zu erstellen und in leichtgewichtigen Containern zu verpacken.
Docker verwendet Devicemapper-Geräte als Standardspeicher-Engine. Führen Sie die folgenden Schritte aus, um Btrfs als Speicher-Engine zu verwenden. Beachten Sie, dass Red Hat Enterprise Linux (RHEL) den Btrfs-Speichertreiber aus seinem Build von Docker entfernt, sowohl aus dem EPEL-Repository (Extra Packages for Enterprise Linux) als auch aus der für RHEL7 veröffentlichten Version.
Verwenden Sie den Befehl systemctl, um den Docker-Dienst zu stoppen. Verwenden Sie den Befehl mkfs.btrfs, um ein Btrfs-Dateisystem auf einem Blockgerät zu erstellen. Verwenden Sie den Befehl blkid, um die UUID des Btrfs-Dateisystems zu ermitteln. Für das in diesem Beitrag verwendete Beispiel gehe ich davon aus, dass Sie das btrfs-Dateisystem bereits konfiguriert haben und sich nur auf die Docker-Konfiguration konzentrieren werden, um das btrfs-Dateisystem als Speicher-Engine zu verwenden.
1. Erstellen Sie /etc/systemd/system/var-lib-docker.mount Datei wie folgt:
[Unit] Description = Docker Image Store [Mount] What = UUID=[UUID for the Btrfs file system] Where = /var/lib/docker Type = btrfs [Install] WantedBy = multi-user.target
2. Verwenden Sie den Befehl systemctl, um das Ziel var-lib-docker.mount zu aktivieren und zu starten.
# systemctl enable var-lib-docker.mount # systemctl start var-lib-docker.mount
3. Stellen Sie den SELinux-Modus auf „Zulässig ein “. SELinux unterstützt derzeit den Btrfs-Speichertreiber nicht.
So deaktivieren oder setzen Sie SELinux in den Permissive-Modus4. Bearbeiten Sie /etc/sysconfig/docker Datei und stellen Sie die OPTIONEN ein Variable wie folgt:
# vi /etc/sysconfig/docker OPTIONS=-s btrfs
5. Kopieren Sie /usr/lib/systemd/system/docker.service Datei nach /etc/systemd/system/docker.service .
# cp -p /usr/lib/systemd/system/docker.service /etc/systemd/system/docker.service
6. Bearbeiten Sie /etc/systemd/system/docker.service und fügen Sie Requires- und After-Einträge für das Ziel var-lib-docker.mount wie folgt hinzu:
# vi /etc/systemd/system/docker.service [Unit] Description=Docker Application Container Engine Documentation=http://docs.docker.com Requires=var-lib-docker.mount After=network.target docker.socket Requires=docker.socket After=var-lib-docker.mount [Service] Type=notify EnvironmentFile=-/etc/sysconfig/docker EnvironmentFile=-/etc/sysconfig/docker-storage ExecStart=/usr/bin/docker -d -H fd:// $OPTIONS $DOCKER_STORAGE_OPTIONS LimitNOFILE=1048576 LimitNPROC=1048576 [Install] WantedBy=multi-user.target
7. Wenn Ihr System einen Web-Proxy verwenden muss, um auf die Docker-Hub-Registrierung zuzugreifen, bearbeiten Sie die Datei /etc/sysconfig/docker und fügen Sie die folgenden Zeilen hinzu. Ersetzen Sie [proxy_URL:port] durch die entsprechende URL und Portnummer für Ihren Web-Proxy.
# vi /etc/sysconfig/docker HTTP_PROXY="[proxy_URL:port]" HTTPS_PROXY="[proxy_URL:port]"
8. Verwenden Sie den Befehl systemctl, um den Docker-Dienst zu aktivieren und zu starten.
# systemctl enable docker # systemctl start docker
9. Der Befehl docker info zeigt jetzt Btrfs als Speichertreiber an:
# docker info Storage Driver: btrfs