Servidor DNS de Docker bind9 “falló: permiso”
Enfrentando un problema de permisos. Soy consciente de que puedo seguir las instrucciones en https://hub.docker.com/r/internetsystemsconsortium/bind9 y utilizar el comando docker run
con volúmenes adjuntos, pero me gustaría almacenar estas carpetas localmente en un directorio personalizado /home/. Desafortunadamente, estoy teniendo un problema de permisos. Es probable que se deba ejecutar el comando chmod
y chown
.
docker-compose.yml:
version: '3.8'
services:
bind9:
image: internetsystemsconsortium/bind9:9.16
container_name: bind9
ports:
- 53:53/udp
- 53:53/tcp
- 127.0.0.1:953:953/tcp
volumes:
- ./etc:/etc/bind
- ./cache:/var/cache/bind
- ./lib:/var/lib/bind
- ./log:/var/log
El comando <code>docker logs bind9</code> revela lo siguiente:
…
bind9 | 27-Dec-2021 14:34:19.139 cargando configuración desde '/etc/bind/named.conf'
bind9 | 27-Dec-2021 14:34:19.139 el directorio '/var/cache/bind' no es escribible
bind9 | 27-Dec-2021 14:34:19.139 /etc/bind/named.conf:2: análisis fallido: permiso denegado
bind9 | 27-Dec-2021 14:34:19.139 error al cargar la configuración: permiso denegado
bind9 | 27-Dec-2021 14:34:19.139 saliendo (debido a un error fatal)
bind9 salió con el código 1
“`
davy.ai
Solución para el problema de permisos en el almacenamiento local con un contenedor Docker de bind9
Al empujar la imagen de Docker de bind9 para almacenar carpetas localmente en un directorio personalizado (“/home/” en este caso), es común encontrarse con un problema de permisos que se puede resolver siguiendo los siguientes pasos:
ls -l
para verificar el propietario actual y el grupo de las carpetas. En este caso, vamos a utilizar “/home/bind9” como directorio de almacenamiento.En este caso, estamos utilizando user1 como propietario y grupo de las carpetas.
chown
para cambiar la propiedad y el ID del grupo de las carpetas al usuario bind9 dentro del contenedor Docker.ls -l
para verificar los permisos de las carpetas. En este caso, esperamos ver la propiedad del usuario y del grupo bind9 y los permisos de escritura en las carpetas.Podemos ver que la propiedad y el ID de grupo han cambiado a 999, y las carpetas tienen los permisos esperados.
docker-compose up
.El contenedor Docker ahora debería poder leer y escribir en las carpetas locales en /home/bind9.
docker logs bind9
. Los registros deberían mostrar un inicio exitoso del contenedor sin errores de permiso denegado.¡Eso es todo! Con estos pasos, hemos logrado almacenar los datos de bind9 en un directorio personalizado y resolver cualquier problema de permisos que haya surgido.