Vic*_*nin 7 macos performance virtual-machine docker
好.我正在玩不同的工具来准备开发环境.Docker是不错的选择.我在docker中创建了整个开发环境,可以在其中构建一个项目.
此项目的源代码位于docker容器之外(在主机上).这样您就可以使用IDE编辑它并使用docker来构建它.
但是,有一个问题
a)OS X上的Docker使用VM(VirtualBox VM)
b)文件共享速度相当慢(比主机上的文件IO慢)
c)该项目有一个像gazzilion文件(夸大问题#a和#b).
如果我在docker中移动源代码,我将在IDE中遇到同样的问题(它将不得不访问共享文件,而且速度很慢).
我听说了一些解决方法,以使它快速.但是,我似乎无法找到有关此主题的任何信息.
更新1
我使用Docker文件共享功能(意思是我运行)
docker run -P -i -v <VMDIR>:<DOCKERDIR> -t <imageName> /bin/bash
Run Code Online (Sandbox Code Playgroud)
但是,VM和Docker之间的共享不是问题.它很快.
瓶颈在主机和VM之间共享.
我使用的解决方法是不使用 boot2docker ,而是使用docker 配置一个 vagrant VM 。挂载文件夹 host->vagrant->docker 没有这么大的惩罚。
不利的一面是,我必须将文件夹预先映射到 vagrant(基本上是我的整个工作目录),并预先公开从 vagrant 盒子到主机的一系列端口,以便直接从那里访问 docker 服务。
从好的方面来说,当我想清理未使用的 docker 垃圾(图像、卷等)时,我只需销毁 vagrant vm 并再次重新创建它:)
阐述
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "trusty-docker"
config.vm.box_url = "https://oss-binaries.phusionpassenger.com/vagrant/boxes/latest/ubuntu-14.04-amd64-vbox.box"
config.vm.provision "docker"
#by default we'll claim ports 9080-9090 on the host system
for i in 9080..9090
config.vm.network :forwarded_port, guest: i, host: i
end
#NB: this folder mapping will not have the boot2docker issue of slow sync
config.vm.synced_folder "~/work", "/home/vagrant/work"
end
Run Code Online (Sandbox Code Playgroud)
有了:
host$ vagrant up && vagrant ssh
vagrant$ docker run -it --rm -v $(pwd)/work:/work ubuntu:12.04 find /work
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3976 次 |
| 最近记录: |