Docker的容器挂载文件夹
Docker's container mount folder
我是 Docker 的新手,我想简单地启动一个 nginx 应用程序。
为此,我有这个 Docker文件:
FROM debian:wheezy
MAINTAINER John Regan <john@jrjrtech.com>
RUN echo "deb http://nginx.org/packages/debian/ wheezy nginx" >> /etc/apt/sources.list.d/nginx.list
RUN apt-key adv --fetch-keys "http://nginx.org/keys/nginx_signing.key"
RUN apt-get update && apt-get -y dist-upgrade
RUN apt-get -y install nginx openssl ca-certificates
##Delete default repository
RUN rm -rf /etc/nginx/conf.d/*
RUN rm -rf /srv/www/*
ADD conf/nginx.conf /etc/nginx/nginx.conf
ADD conf/conf.d/default.conf /etc/nginx/conf.d/default.conf
ADD html/index.html /srv/www/index.html
VOLUME ["/etc/nginx"]
VOLUME ["/srv/www"]
EXPOSE 80
EXPOSE 443
ENTRYPOINT ["nginx"]
CMD []
我的文件夹是这样组织的:
├── conf
| ├── nginx.conf
| └── conf.d
| └── default.conf
├── html
| └── index.html
启动容器的命令:
sudo docker run -d -p 80:80 -v $pwd/conf:/etc/nginx -v $pwd/html:/srv/www my-nginx
但是 conatiner 停止了,我在日志中收到了这条消息:
nginx: [emerg] open() "/etc/nginx/mime.types" failed (2: No such file or directory) in /etc/nginx/nginx.conf:14
我知道日志已经很清楚了,但我不明白为什么它不起作用。
谢谢。
您确定nginx.conf中的配置正确吗?该错误似乎与 nginx 有关,而不是 docker.
当您安装 conf
目录时,您正在替换 /etc/nginx
目录的内容。而是挂载 nginx.conf
文件和 conf/conf.d
- 请参阅挂载文件部分,https://docs.docker.com/v1.8/userguide/dockervolumes/
sudo docker run -d -p 80:80 -v $pwd/conf/conf.d:/etc/nginx/conf.d -v $pwd/conf/nginx.conf:/etc/nginx/nginx.conf -v $pwd/html:/srv/www my-nginx
"volume"选项,挂载一个新的目录点,如果你只需要挂载一个文件,你应该具体说明。
我是 Docker 的新手,我想简单地启动一个 nginx 应用程序。
为此,我有这个 Docker文件:
FROM debian:wheezy
MAINTAINER John Regan <john@jrjrtech.com>
RUN echo "deb http://nginx.org/packages/debian/ wheezy nginx" >> /etc/apt/sources.list.d/nginx.list
RUN apt-key adv --fetch-keys "http://nginx.org/keys/nginx_signing.key"
RUN apt-get update && apt-get -y dist-upgrade
RUN apt-get -y install nginx openssl ca-certificates
##Delete default repository
RUN rm -rf /etc/nginx/conf.d/*
RUN rm -rf /srv/www/*
ADD conf/nginx.conf /etc/nginx/nginx.conf
ADD conf/conf.d/default.conf /etc/nginx/conf.d/default.conf
ADD html/index.html /srv/www/index.html
VOLUME ["/etc/nginx"]
VOLUME ["/srv/www"]
EXPOSE 80
EXPOSE 443
ENTRYPOINT ["nginx"]
CMD []
我的文件夹是这样组织的:
├── conf
| ├── nginx.conf
| └── conf.d
| └── default.conf
├── html
| └── index.html
启动容器的命令:
sudo docker run -d -p 80:80 -v $pwd/conf:/etc/nginx -v $pwd/html:/srv/www my-nginx
但是 conatiner 停止了,我在日志中收到了这条消息:
nginx: [emerg] open() "/etc/nginx/mime.types" failed (2: No such file or directory) in /etc/nginx/nginx.conf:14
我知道日志已经很清楚了,但我不明白为什么它不起作用。
谢谢。
您确定nginx.conf中的配置正确吗?该错误似乎与 nginx 有关,而不是 docker.
当您安装 conf
目录时,您正在替换 /etc/nginx
目录的内容。而是挂载 nginx.conf
文件和 conf/conf.d
- 请参阅挂载文件部分,https://docs.docker.com/v1.8/userguide/dockervolumes/
sudo docker run -d -p 80:80 -v $pwd/conf/conf.d:/etc/nginx/conf.d -v $pwd/conf/nginx.conf:/etc/nginx/nginx.conf -v $pwd/html:/srv/www my-nginx
"volume"选项,挂载一个新的目录点,如果你只需要挂载一个文件,你应该具体说明。