gpt4 book ai didi

docker - 是什么导致 docker 卷被填充?

转载 作者:行者123 更新时间:2023-12-02 20:20:14 26 4
gpt4 key购买 nike

我正在运行以下命令:
docker run --name wiki --link wiki-mdb:mysql -p 9081:80 -v /var/data/wikimedia/apache2:/etc/apache2 -v /var/data/wikimedia/wiki:/var/www/html -d synctree/mediawiki
并且容器死亡,因为apache2在/ etc / apach2中找不到其配置文件...

好的,所以我在没有apache2卷的情况下再次运行命令:
docker run --name wiki --link wiki-mdb:mysql -p 9081:80 -v /var/data/wikimedia/wiki:/var/www/html -d synctree/mediawiki
不仅有效,而且/ var / data / wikimedia / wiki开始为空,并填充了所有需要的php文件。

那么区别是什么呢?为什么有些卷中填充了容器中的内容,而另一些卷则更喜欢将空白文件夹安装在容器内部配置之上?

我最终通过运行sudo docker cp 9f9ba217a2ec:/etc/apache2 ./来生成一个默认的apache2文件夹来解决了我的问题...但是,似乎应该有押韵或某种理由来说明是否在卷中生成了内容。

我认为这可能与Dockerfile有关,但它对任何一条路径都没有任何特定的引用。

最佳答案

-v /var/data/wikimedia/apache2:/etc/apache2开头的链接将本地/var/data/wikimedia/apache2与容器内的/etc/apache2链接。这将掩盖在生成时创建的容器文件夹。因为/etc/apache2是apache在寻找其配置的位置,所以将没有配置的/var/data/wikimedia/apache2链接到/etc/apache2会导致服务器找不到配置并无法启动。

保留该卷不会掩盖在构建时创建的容器中已经存在的/etc/apache2文件夹,从而使构建时放置在其中的Dockerfile脚本的配置文件保持原样。服务器找到合适的配置并按预期启动。

我不是php的专业人士,尤其是在什么时候生成文件(如果有的话),但是我怀疑在服务器正常启动时,php文件(显然)已填充到/var/www/html中。由于后者只是本地/var/data/wikimedia/wiki的链接,因此您还可以在主机系统上看到这些文件。

关于docker - 是什么导致 docker 卷被填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39132411/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com