I have a problem when i execute the next docker instructions:
# make a directory
mkdir /server/nginx
cd /server/nginx
# make a container
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
I get the next 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 generated the next directories:
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/
When need be files not directories.
2
Answers
The
d
above meansnginx.conf
is not a file, but a folder. You could try tocd nginx.conf
to verify it.As the error indicates, you should setup a
nginx.conf
file, not anginx.conf
folder.Happened to me starting a container having previously mounted volume from one location, while I assigned it meanwhile other location. After removing and recreating containers from the start, binding/mounting a new volume path, it worked.