我想在泊坞窗安装HTTPD,我写了这样的dockerfile:的httpd在码头工人无法启动
FROM centos
VOLUME /var/log/httpd
VOLUME /etc/httpd
VOLUME /var/www/html
# Update Yum Repostory
RUN yum clean all && \
yum makecache fast && \
yum -y update && \
yum -y install httpd
RUN yum clean all
EXPOSE 80
CMD /usr/sbin/httpd -D BACKGROUND && tail -f /var/log/httpd/access_log
,如果我没有主机卷上运行的图像它的工作原理,但如果我使用参数失败:
--volume /data/httpd/var/www/html:/var/www/html --volume /data/httpd/var/log:/var/log --volume /data/httpd/etc:/etc/httpd
的错误信息是:
httpd: Could not open configuration file /etc/httpd/conf/httpd.conf: No such file or directory
我检查安装点,其是空的:
# ll /data/httpd/etc/
total 0
但是,如果我没有在文件默认情况下,泊坞窗copys用“量”到一个临时文件夹:
# ll /var/lib/docker/volumes/04f083887e503c6138a65b300a1b40602d227bb2bbb58c69b700f6ac753d1c34/_data
total 4
drwxr-xr-x. 2 root root 35 Nov 3 03:16 conf
drwxr-xr-x. 2 root root 78 Nov 3 03:16 conf.d
drwxr-xr-x. 2 root root 4096 Nov 3 03:16 conf.modules.d
lrwxrwxrwx. 1 root root 19 Nov 3 03:16 logs -> ../../var/log/httpd
lrwxrwxrwx. 1 root root 29 Nov 3 03:16 modules -> ../../usr/lib64/httpd/modules
lrwxrwxrwx. 1 root root 10 Nov 3 03:16 run -> /run/httpd
所以我很困惑,为什么搬运工拒绝将其复制到指定的位置?以及如何解决这个问题?
谢谢你,Zeppelin,但你是什么意思“安装主机目录”?我正在使用“volume”参数,我希望它能够做到文档所说的:“在卷初始化时将现有数据复制到新卷中”,但它不会发生。 – user3593261
挂载一个卷意味着你通过在命令行上同时指定主机文件系统文件夹(即_/date/httpd/etc/_),作为容器内的卷(_/etc/httpd_)。 volume =/data/httpd/etc:/ etc/httpd。 (这是_mounted_卷的语法)。 这与使用--volume/etc/httpd简单声明卷不同(请注意,没有指定主机文件夹路径)。 – zeppelin
谢谢你的解释,但如果我不给它一个挂载点,它就没有意义了。但是,我删除了本地路径(--volume =/etc/httpd),但它仍然失败,因为它创建了一个新的临时文件夹,也没有复制任何内容。 – user3593261