提升MAC for docker速度

1,581 阅读2分钟

MAC for docker真慢

笨叔听人忽悠买了MAC,发现在MAC上编译runninglinuxkernel真麻烦,需要安装一个vmware或者vbox虚拟机。后来听说可以在MAC上安装一个docker,在docker里编译和运行runninglinuxkenrel,那个速度真是一个叫蜗牛。我在vmware虚拟机里编译内核需要大概6分钟,在docker里编译需要60分钟,慢10倍。

图片

真没法用了。

docker sync加速

后来笨叔听说docker for MAC比较慢,是因为host和docker文件系统之间传东西比较慢,就是IO慢,可以使用docker sync来加速。

图片

docker sync安装起来用比较简单。

  1. 先安装docker-sync
 #gem install --user-install docker-sync

修改~/.bashrc文件,添加如下语句。

if which ruby >/dev/null && which gem >/dev/null; then

 PATH="$(ruby -r rubygems -e 'puts Gem.user_dir')/bin:$PATH" 

fi

然后运行:source  ~/.bashrc让环境变量生效。

  1. 安装其他必要的包。

#brew install unison

#brew install eugenmayer/dockersync/unox

  1. 在需要和docker 同步的目录(假设你要同步的目录是:/Users/figo/work)下面创建一个docker-sync.yml文件。在该文件中添加如下语句。

version: '2'

syncs:

    mac_sync:

        sync_strategy: 'unison'

        src: '.'

上面脚本我们创建了一个mac_sync的同步的标签,它会把/Users/figo/work目录同步到docker里。

  1.  启动dock-sync服务。

$cd  /Users/figo/work

$ docker-sync start

          ok  Starting unison for sync mac_sync

          ok  Synced /Users/figo/work

     success  Unison server started

          ok  Synced /Users/figo/work

     success  Starting Docker-Sync in the background

$

  1. 启动docker。

#docker run -it --rm --privileged=true -v mac_sync:/root/work registry.cn-shanghai.aliyuncs.com/benshushu/runninglinuxkernel:rlk bash

上面的docker命令把刚才创建的mac_sync映射到了docker里面的/root/work目录。

笨叔把docker上传到了阿里云上,大家下载比较快:registry.cn-shanghai.aliyuncs.com/benshushu/runninglinuxkernel

接着我们在/root/work目录下面编译内核。

图片

最后我们发现,docker里的编译速度和vmware差不多了,比之前快了10倍。

微信公众号

图片