php - 如何弄清楚是什么减慢了 docker 的速度?

标签 php macos performance docker symfony

我的问题如下 - 我在 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/

相关文章:

performance - 用于压力、负载和性能测试的开源工具

php - 由逗号和新行一起展开

php - 授予对 Yii2 模块的访问权限

macos - macOS 10.14 Mojave 上 GTK# 中的字体看起来很粗

ios - Crashlytics Mac 应用程序如何工作?

mysql - MySQL 的 MEMORY 存储引擎的替代品

c++ - 高速有效地更新 QTableView

php - PDO:MySQL 服务器已消失

php - 表单未提交到数据库

node.js - ElectronJS - 将文件夹添加到收藏夹 [macOS]