添加卷后Docker运行缓慢(WordPress)

5

我希望在本地开发中使用Docker。当我使用Docker Compose创建Wordpress容器时,一切在浏览器中都加载得非常快。这比使用Local by Flywheel要快得多。问题是我没有访问Wordpress文件的权限。为了访问这些文件,我在docker-compose.yml中添加了卷:

volumes:
  - ./wp-content:/var/www/html/wp-content

我现在可以访问这些文件,但是浏览器加载速度太慢了,使用Docker反而失去了意义。 有什么办法可以加快它的速度吗?


绑定挂载(所使用的)旨在比卷更快。这没有意义。也许您的主机上该文件夹/卷存在争用问题。如果您使用的是Linux,可以使用iotop程序监视FS操作。 - davidxxx
谢谢。浏览器加载时间大约为8秒。我正在使用Windows 10。我仍然不知道...现在我正在尝试找出这条消息是否有任何关联:“Docker桌面已检测到您将Windows文件共享到WSL 2容器中,可能性能较差”... - Ivan
我昨天写了一个有关Docker WordPress的教程,其中我的docker-compose.yml配置创建了个人wp-content文件夹、pluginsuploads等的持久本地映射。加载整个wp-content文件夹似乎有些过度。我的演示是基于Mac的,因此某些命令可能略有不同。请查看我的docker-compose.yml设置是否适用于您... https://stackoverflow.com/questions/64473536/why-is-this-volume-mounted-as-read-only/64493602#64493602 - joshmoto
2个回答

2
问题涉及“一致性类型”在卷中的设置。将其设置为“缓存”。
services:
    wordpress:

        ...

        volumes:
            - ./data:/data
            - ./scripts:/docker-entrypoint-initwp.d
            #- ./wp-content:/app/wp-content
            - type: bind
              source: ./wp-content
              target: /app/wp-content
              consistency: cached
            #- ./php-conf:/usr/local/etc/php
            - type: bind
              source: ./php-conf
              target: /usr/local/etc/php
              consistency: cached

点击这里获取更多详细信息


谢谢你的建议!我一定会有机会尝试。 我想我已经找到了如何让WordPress更快的方法。 以前,我将其安装在Windows文件系统上。但是在WSL上安装它要快得多。 - Ivan

0
在Windows上,如果您在Windows文件系统上设置绑定挂载而不是在WSL文件系统上设置,性能会受到很大的影响。
volumes:
  - //wsl$/path-to/wp-content:/var/www/html/wp-content

我们建议不要在不同操作系统之间处理文件.....为了获得最快的性能速度,如果您在Linux上工作,请将文件存储在WSL文件系统中。

https://learn.microsoft.com/en-us/windows/wsl/setup/environment?source=recommendations

文件可以在不同操作系统之间访问,但这可能会显著降低性能。

https://learn.microsoft.com/en-us/windows/wsl/setup/environment?source=recommendations#file-storage


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接