stream浪docker提供商缓慢build立

我正尝试在Windows机器上使用Docker提供程序的Vagrant。 我有这样的Vagrantfile:

ENV['VAGRANT_DEFAULT_PROVIDER'] = 'docker' Vagrant.require_version ">= 1.6.0" VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.define "app" do |app| app.vm.provider "docker" do |d| d.name = "app" d.build_dir = "." d.vagrant_machine = "dockerhost" d.vagrant_vagrantfile = "./DockerhostVagrantfile" end end end 

Docker主机定义如下:

 Vagrant.configure("2") do |config| config.vm.synced_folder ".", "/vagrant", type: "smb" config.vm.provision "docker" config.vm.define "dockerhost" config.vm.box = "ubuntu/trusty64" config.vm.network "forwarded_port", guest: 8080, host: 8080 config.vm.provider :virtualbox do |vb| vb.name = "dockerhost" end end 

和Docker容器一样:

 FROM ubuntu:14.04 WORKDIR /vagrant/application # .... install stuff EXPOSE 8080 CMD ["/bin/bash"] 

问题是,每当我做vagrant docker-run app -- bash和dockerimage必须重build过程需要很长时间。

 // .... app: Sending build context to Docker daemon 180.5 MB app: Sending build context to Docker daemon 181 MB app: Sending build context to Docker daemon 181.6 MB // .... 

我认为这是因为dockerhost内的文件夹与vboxfs (我发现非常慢)挂载。

有什么办法可以强制stream浪使用smb

性能问题是由什么引起的?

最后,我find了一个解决scheme,如何使用smb而不是vboxfs来安装vboxfs docker build directory

正如这里所述https://github.com/mitchellh/vagrant/commit/745bdf676675e7b1f25fd7df5a4ed48b582b6dc7

可以定义host_vm_build_dir_options属性。 所以我修改了我的Vagrantfile像这样:

 ENV['VAGRANT_DEFAULT_PROVIDER'] = 'docker' Vagrant.require_version ">= 1.6.0" VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.define "app" do |app| app.vm.provider "docker" do |d| d.name = "app" d.build_dir = "." d.vagrant_machine = "dockerhost" d.vagrant_vagrantfile = "./DockerhostVagrantfile" d.host_vm_build_dir_options = { type: "smb" } end end end 

无论如何,速度的真正问题是由于在我的项目根目录中有Dockerfile ,所以所有的文件都被发送到主机。 我解决了这个问题,把它移动到Docker文件夹,其中只有Dockerfile。