docker run命令错误:(我正在敲击文档命令,Docker 版本18.03.0-ce),问为什么?
docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx
错误如下:
ebb97ea2c176cb1693912f54960db6281b30c95482c67df37183a8e1c618ca92
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:402: container init caused \"rootfs_linux.go:58: mounting \\\"/home/xiao/nginx/conf/nginx.conf\\\" to rootfs \\\"/var/lib/docker/overlay2/17a9b49be13458de18ce62753d49a94a3d6dc6685af7483f6e9b2e12d20bb92c/merged\\\" at \\\"/var/lib/docker/overlay2/17a9b49be13458de18ce62753d49a94a3d6dc6685af7483f6e9b2e12d20bb92c/merged/etc/nginx/nginx.conf\\\" caused \\\"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.
答案 0 :(得分:0)
问题是由于容器中存在$ PWD / conf / nginx.conf ,而命令docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf ...
正试图用nginx替换容器中的nginx.conf。来自您的主人的。
如果您想在容器中安装nginx服务器并使用主机的nginx.conf配置,您必须确保nginx.conf不存在于容器中 。
如果它存在于容器中,因为您要在Dockerfile
中安装它,并且您希望保留容器中的主机nginx.conf文件,则需要在安装nginx之后将RUN rm -f $PWD/conf/nginx.conf
添加到容器Dockerfile中。
请注意,我只向您展示了您的提案的可能解决方案,但我不建议您这样做,直到我知道您为什么需要将nginx.conf用于该文件。