我想在泊塢窗安裝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