Docker es una herramienta de gestión de plataforma abierta para contenedores de Linux. Proporciona un medio para que los desarrolladores y administradores de sistemas creen y empaqueten aplicaciones en contenedores ligeros.
Docker utiliza dispositivos mapeadores de dispositivos como motor de almacenamiento predeterminado. Para usar Btrfs como motor de almacenamiento, realice los siguientes pasos. Tenga en cuenta que Red Hat Enterprise Linux (RHEL) elimina el controlador de almacenamiento Btrfs de su compilación de Docker, tanto en el repositorio de paquetes adicionales para Enterprise Linux (EPEL) como en la versión lanzada para RHEL7.
Utilice el comando systemctl para detener el servicio docker. Utilice el comando mkfs.btrfs para crear un sistema de archivos Btrfs en un dispositivo de bloques. Utilice el comando blkid para determinar el UUID del sistema de archivos Btrfs. Para el ejemplo utilizado en esta publicación, asumo que ya configuró el sistema de archivos btrfs y se centrará solo en la configuración de la ventana acoplable para usar el sistema de archivos btrfs como motor de almacenamiento.
1. Cree el /etc/systemd/system/var-lib-docker.mount archivo de la siguiente manera:
[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. Use el comando systemctl para habilitar e iniciar el destino var-lib-docker.mount.
# systemctl enable var-lib-docker.mount # systemctl start var-lib-docker.mount
3. Establezca el modo SELinux en “Permisivo “. SELinux actualmente no es compatible con el controlador de almacenamiento Btrfs.
Cómo deshabilitar o establecer SELinux en modo permisivo4. Edite el /etc/sysconfig/docker archivo y configure las OPCIONES variable de la siguiente manera:
# vi /etc/sysconfig/docker OPTIONS=-s btrfs
5. Copie el /usr/lib/systemd/system/docker.service archivo a /etc/systemd/system/docker.service .
# cp -p /usr/lib/systemd/system/docker.service /etc/systemd/system/docker.service
6. Edite /etc/systemd/system/docker.service y agregue las entradas Requires y After para el destino var-lib-docker.mount de la siguiente manera:
# 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 su sistema necesita usar un proxy web para acceder al Registro de Docker Hub, edite el archivo /etc/sysconfig/docker y agregue las siguientes líneas. Reemplace [proxy_URL:port] con la URL y el número de puerto adecuados para su proxy web.
# vi /etc/sysconfig/docker HTTP_PROXY="[proxy_URL:port]" HTTPS_PROXY="[proxy_URL:port]"
8. Use el comando systemctl para habilitar e iniciar el servicio docker.
# systemctl enable docker # systemctl start docker
9. El comando docker info ahora muestra Btrfs como el controlador de almacenamiento:
# docker info Storage Driver: btrfs