我的问题如下 - 我在OSX上使用包含Redis,NginX,PHP 7和Unison的容器的Docker。映射到php容器我有Symfony 3.1.7的卷。
一切正常,但Symfony的“欢迎”页面平均需要约1.5秒的加载时间。同时没有泊坞窗的相同设置给我0.2秒的加载时间。与Symfony的控制台命令相同,所以,我想,这不是NginX的问题,Unison应该否定与Docker文件同步OSX问题相关的所有问题。
现在我已经没有想法我可以做些什么来加快速度,以及如何找出造成1.5秒延迟的原因。
我的第二个MBP也遇到了同样的问题,但这种事情并没有发生在同事的笔记本电脑上,这与我的相似,但我们无法找到两种设置之间的任何区别。
我的MBP上运行的一切都是2.5 GHz i5,8 Gb RAM和SSD。
Docker 1.12.3,OSX 10.12.1(Sierra)
搬运工-compose.yml:
mydockerbox-redis:
image: phpdockerio/redis:latest
container_name: mydockerbox-redis
mydockerbox-webserver:
image: phpdockerio/nginx:latest
container_name: mydockerbox-webserver
volumes:
- ..:/var/www/mydockerbox
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "80:80"
links:
- mydockerbox-php-fpm
unison:
image: leighmcculloch/unison:latest
environment:
- UNISON_WORKING_DIR=/unison
volumes:
- ../mydockerbox:/var/www/mydockerbox
ports:
- "5000:5000"
mydockerbox-php-fpm:
build: .
dockerfile: php-fpm/Dockerfile
container_name: mydockerbox-php-fpm
volumes_from:
- unison
volumes:
- ./php-fpm/php-ini-overrides.ini:/etc/php/7.0/fpm/conf.d/99-overrides.ini
links:
- mydockerbox-redis
UPD这里是用于php-fpm容器的Dockerfile:
FROM phpdockerio/php7-fpm:latest
# Install selected extensions and other stuff
RUN apt-get update \
&& apt-get -y --no-install-recommends install php7.0-mongodb php7.0-redis php7.0-igbinary \
&& apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
WORKDIR "/var/www/mydockerbox"
答案 0 :(得分:0)
我建议您使用docker-machine-driver-xhyve:
xhyve / hyperkit(native macOS hypervisor.framework)的docker-machine / libmachine驱动程序插件
你可以简单地用brew安装(我希望你已经安装了docker& Co with brew,否则取消链接并用brew安装它们):
brew install docker-machine-driver-xhyve
sudo chown root:wheel $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
sudo chmod u+s $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
然后您可以创建一个泊坞机:
docker-machine create --driver xhyve --xhyve-experimental-nfs-share my-xhyve-docker-machine
并用它来运行你的容器
答案 1 :(得分:0)
首先,在php-fpm
容器中对PHP性能进行基准测试(例如,使用this)并将其与同事的容器进行比较。
如果您发现性能相同/具有可比性,那么使用PHP性能分析工具来查找Symfony在生成"欢迎"页。这可能会识别瓶颈(可能是文件系统,与Redis容器的网络通信,DNS查找等)。
如果基准测试显示容器中的PHP本身运行较慢(我认为不太可能),那么在主机上运行基准测试。如果主机和php-fpm
收件人的结果之间存在很大差异 - 这意味着docker引擎会限制资源并需要深度调整或重新安装。