Docker est un outil de gestion de plate-forme ouverte pour les conteneurs Linux. Il permet aux développeurs et aux administrateurs système de créer et de conditionner des applications dans des conteneurs légers.
Docker utilise des appareils devicemapper comme moteur de stockage par défaut. Pour utiliser Btrfs comme moteur de stockage, procédez comme suit. Notez que Red Hat Enterprise Linux (RHEL) supprime le pilote de stockage Btrfs de leur version de Docker, à la fois sur le référentiel Extra Packages for Enterprise Linux (EPEL) et sur la version publiée pour RHEL7.
Utilisez la commande systemctl pour arrêter le service docker. Utilisez la commande mkfs.btrfs pour créer un système de fichiers Btrfs sur un périphérique bloc. Utilisez la commande blkid pour déterminer l'UUID du système de fichiers Btrfs. Pour l'exemple utilisé dans cet article, je suppose que vous avez déjà configuré le système de fichiers btrfs et que vous vous concentrerez uniquement sur la configuration de docker pour utiliser le système de fichiers btrfs comme moteur de stockage.
1. Créez le fichier /etc/systemd/system/var-lib-docker.mount fichier comme suit :
[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. Utilisez la commande systemctl pour activer et démarrer la cible var-lib-docker.mount.
# systemctl enable var-lib-docker.mount # systemctl start var-lib-docker.mount
3. Réglez le mode SELinux sur "Permissif “. SELinux ne prend actuellement pas en charge le pilote de stockage Btrfs.
Comment désactiver ou définir SELinux en mode permissif4. Modifiez le fichier /etc/sysconfig/docker fichier et définissez les OPTIONS variable comme suit :
# vi /etc/sysconfig/docker OPTIONS=-s btrfs
5. Copiez le fichier /usr/lib/systemd/system/docker.service fichier dans /etc/systemd/system/docker.service .
# cp -p /usr/lib/systemd/system/docker.service /etc/systemd/system/docker.service
6. Modifiez /etc/systemd/system/docker.service et ajoutez les entrées Requires et After pour la cible var-lib-docker.mount comme suit :
# 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. Si votre système doit utiliser un proxy Web pour accéder au registre Docker Hub, modifiez le fichier /etc/sysconfig/docker et ajoutez les lignes suivantes. Remplacez [proxy_URL:port] par l'URL et le numéro de port appropriés pour votre proxy Web.
# vi /etc/sysconfig/docker HTTP_PROXY="[proxy_URL:port]" HTTPS_PROXY="[proxy_URL:port]"
8. Utilisez la commande systemctl pour activer et démarrer le service docker.
# systemctl enable docker # systemctl start docker
9. La commande docker info affiche maintenant Btrfs comme pilote de stockage :
# docker info Storage Driver: btrfs