Docker的mac symfony 3很慢

我正在用Symfony 3开始一个新项目,我想使用Docker作为开发环境。 我们将与十几个开发人员一起工作,所以我想要一个简单的安装过程。

这是我的docker-compose.yml

version: '2' services: db: image: mysql ports: - "3307:3306" environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: mydb MYSQL_USER: root MYSQL_PASSWORD: root php: build: ./php-fpm expose: - "9001" volumes: - .:/var/www/project - ./var/logs:/var/www/project/app/logs links: - db nginx: build: ./nginx ports: - "8001:80" links: - php volumes_from: - php volumes: - ./var/logs/nginx/:/var/log/nginx 

我安装了最近的Docker for Mac应用程序(testing版)。 最大的问题是我的symfony应用程序非常慢(一个简单的页面需要5秒以上)。 与MAMP相同的应用程序要快得多(最多500毫秒)。 这是一个知道Docker的问题吗? 我怎样才能debugging它?

这是一个已知的问题 。 您的本地文件系统正在使用osxfs在Mac OS VM的Docker中进行安装,读取和写入这些安装的文件时会有一些额外的延迟。 对于小型应用程序来说,这并不是太明显,但对于可以在单个请求中读取数千个文件的大型应用程序来说,这可能会显着减慢速度。

对不起,对于迟来的答案,但你可以安装dockerCE边缘造成它支持caching模式。

  • 下载Docker-Edge(等待将支持caching模式的docker的稳定版本)
  • 将以下行添加到您的docker-compose.yml文件中

大段引用

 php: volumes: - ${SYMFONY_APP_PATH}:/var/www/symfony:cached 

用你自己的pathreplace$ {SYMFONY_APP_PATH}。

其实我使用docker在本地运行项目。 为了更快地运行Docker,我使用了下面的设置:

MAC OSX:

Docker工具箱

 Install normaly the dmg file. Open your terminal and type: `$ docker-machine create --driver virtualbox default ` `$ docker-machine env default` `eval "$(docker-machine env default)"` Now you have the docker-machine up and running, any docker-compose, docker command will run "inside the machine". In our case "Symfony" is a large application. The docker-machine file system is under osxfs, so the application will be very slow. 

泊坞窗机,NFS

安装时使用:

curl -s https://raw.githubusercontent.com/adlogix/docker-machine-nfs/master/docker-machine-nfs.sh | sudo tee /usr/local/bin/docker-machine-nfs > /dev/null && \ sudo chmod +x /usr/local/bin/docker-machine-nfs

运行

键入root密码将是必要的

$ docker-machine-nfs default

现在你的docker-machine正在nfs文件系统下运行。

速度将是正常的。

将docker-machine映射到localhost

规则docker容器将运行在192.168.99.100:9000下

在terminal上运行:

$ vboxmanage modifyvm default --natpf1 "default-map,tcp,,9000,,9000'

您可以从本地主机访问:9000

我有一个类似的问题。 在我的情况下,我在Docker容器中运行了一个python脚本,速度非常慢。 我解决这个问题的方法是使用“旧” docker工具箱 。

这不是理想的,但为我工作

在这里我有一个解决这个问题的详细解决scheme, 在OSX缓慢的docker上 ,请检查出来。

我知道它没有缓慢的起伏,没有额外的软件来安装。

已知的问题

这是已知的问题https://forums.docker.com/t/file-access-in-mounted-volumes-extremely-slow-cpu-bound/8076

如果您有https://www.docker.com/docker-mac,我不会推荐https://www.docker.com/products/docker-toolbox

Docker for Mac不使用VirtualBox,而是使用HyperKit,这是一个轻量级的macOS虚拟化解决scheme,基于macOS 10.10 Yosemite及更高版本的Hypervisor.framework构build。 https://docs.docker.com/docker-for-mac/docker-toolbox/#the-docker-for-mac-environment

我的解决方法

我已经创build了可以帮助你的解决方法。 我使用http://docker-sync.io/为我的symfony项目。 在使用docker-sync页面加载30秒之前,现在它低于1秒 – https://github.com/Arkowsky/docker_symfony