Skip to main content

如何提升Docker for Mac性能

Contra | Wed, 06/07/2017 - 14:50

如何提升Docker for Mac性能

Docker For Mac 在mount本地文件时,有很大的性能问题,本文介绍两种实测有效的性能提升方法。

什么是Docker for Mac:
Docker for Mac is an easy-to-install desktop app for building, debugging and testing Dockerized apps on a Mac. Docker for Mac is a complete development environment deeply integrated with the MacOS Hypervisor framework, networking and filesystem. Docker for Mac is the fastest and most reliable way to run Docker on a Mac.

关于D4M性能问题的详细讨论,见这里:
File access in mounted volumes extremely slow · Issue #77 · docker/for-mac

里边提到了几种解决方案:
- docker-machine-nfs: adlogix/docker-machine-nfs
- d4m-nfs: IFSight/d4m-nfs
- docker-sync: EugenMayer/docker-sync
- 使用edge版的Docker for Mac

实测了以下两种:
1. docker-sync
EugenMayer/docker-sync
使用docker-sync后,性能确有明显提升。
但我在具体开发中遇到一个问题:
用了docker-sync后,从Docker容器里建一个目录xfolder,在容器外本地往该目录xfolder里添加几个文件,这些文件无法同步到Docker容器里。
反之则可以,即先从本地创建目录,再从Docker容器里往该目录里添加文件,则这些文件会正常同步到本地。
该问题在官方issues里也有记录:
0.4.6 not syncing both directions on macOS 10.11.6 · Issue #410 · EugenMayer/docker-sync

2. 使用edge版的Docker for Mac
实测性能提升效果也不错,与docker-sync接近。
卸载stable版的Docker,安装edge版

安装后,在docker-compose.yml中要mount的volumes处,增加cached标记即可:

详细介绍直接见:
File access in mounted volumes extremely slow · Issue #77 · docker/for-mac

谢谢阅读
题图引自 http://whalesunderwater.com


不要慌,300字够了,撤。

微信公众号:浮生开方
HUDO.IT on Slack: hudoit.herokuapp.com

Leave a Comment