怎么弄明白,什么减慢了码头工人的速度?

Ser*_*ter 6 php macos performance symfony docker

我的问题如下 - 我在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
Run Code Online (Sandbox Code Playgroud)

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"
Run Code Online (Sandbox Code Playgroud)

Mat*_*teo 1

我建议您使用docker-machine-driver-xhyve

xhyve/hyperkit 的 docker-machine/libmachine 驱动程序插件(原生 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
Run Code Online (Sandbox Code Playgroud)

然后你可以创建一个 docker 机器:

docker-machine create --driver xhyve --xhyve-experimental-nfs-share my-xhyve-docker-machine
Run Code Online (Sandbox Code Playgroud)

并用它来运行你的容器