我的问题如下 - 我在 OSX 上有 Docker,容器包含 Redis、NginX、PHP 7 和 Unison。映射到 php-container 我有 Symfony 3.1.7 的卷。
一切正常,但 Symfony 的“欢迎”页面平均需要大约 1.5 秒的加载时间。同时,没有 docker 的相同设置给了我 0.2 秒的加载时间。我对 Symfony 的控制台命令也有同样的区别,所以,我想,这不是 NginX 的问题,而 Unison 应该已经否定了与 OSX 上的 Docker 文件同步相关的所有问题。
现在我已经想不出我可以做些什么来加快速度,以及如何找出造成 1.5 秒延迟的原因。
我在我的第二个 MBP 上遇到了同样的问题,但在同事的笔记本电脑上并没有发生这种情况,这与我的笔记本电脑很相似,但我们无法发现两种设置之间有任何差异。
一切都在我的 MBP 上运行,配备 2.5 GHz i5、8 Gb RAM 和 SSD。
Docker 1.12.3、OSX 10.12.1(山脉)
docker-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"
最佳答案
我建议你使用 docker-machine-driver-xhyve :
docker-machine/libmachine driver plugin for xhyve/hyperkit (native macOS hypervisor.framework)
您可以简单地使用 brew 安装(我希望您已经使用 brew 安装了 docker&Co,否则请取消链接并使用 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 机器:
docker-machine create --driver xhyve --xhyve-experimental-nfs-share my-xhyve-docker-machine
并用它来运行你的容器
关于php - 如何弄清楚是什么减慢了 docker 的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40832825/