es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  ,

Answer

  1. Avatar for 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:

    # 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
    

    Esto montará correctamente el archivo nginx.conf y el directorio de logs como archivos, resolviendo el error causado al intentar montarlos como directorios.

Comments are closed.