docker: Respuesta de error del demonio: OCI runtime create fallida: container_linux.go:380: el proceso de inicio del contenedor causó: process_linux.go:545:
Tengo un problema cuando ejecuto las siguientes instrucciones de Docker:
# crear un directorio
mkdir /server/nginx
cd /server/nginx
# crear un contenedor
docker run --name nginx \
-d -p 8080:8080 \
-v /home/www:/home/www \
-v /home/www:/usr/share/nginx/html \
-v "$PWD"/nginx.conf:/etc/nginx/nginx.conf \
-v "$PWD"/logs:/var/log/nginx \
-v "$PWD"/conf.d:/etc/nginx/conf.d \
--link php \
-d nginx
Obtengo el siguiente error:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:76: mounting "/server/nginx/nginx.conf" to rootfs at "/etc/nginx/nginx.conf" caused: mount through procfd: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
Docker generó los siguientes directorios:
drwxr-xr-x 5 root root 4096 Jan 7 05:03 ./
drwxr-xr-x 8 root root 4096 Jan 7 04:49 ../
drwxr-xr-x 2 root root 4096 Jan 7 05:03 conf.d/
drwxr-xr-x 2 root root 4096 Jan 7 05:03 logs/
drwxr-xr-x 2 root root 4096 Jan 7 05:03 nginx.conf/
Se necesitan archivos en lugar de directorios.
davy.ai
El problema con las instrucciones de Docker es que los puntos de montaje del archivo nginx.conf y el directorio de logs se crean erróneamente como directorios en lugar de archivos. Para solucionar esto, elimina la barra diagonal de los caminos de montaje de volumen para los directorios nginx.conf y logs, de la siguiente manera:
Esto montará correctamente el archivo nginx.conf y el directorio de logs como archivos, resolviendo el error causado al intentar montarlos como directorios.