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。
- 什么是shellforms和execforms?
- Docker for windows:我应该在哪里将SSH私钥放在一个windows容器中用于git?
- 如何让docker运行docker?
- Docker共享使用fuse的s3fs卷:如果不使用–privileged,则不能卸载或重新安装
- Docker构buildinput/输出错误
- Apache Spark:MesosClusterDispatcher可以在Docker容器中运行执行程序吗?
- 通过docker-compose向Docker容器提供静态IP
- Docker与Spring Boot / Dropwizard是互补还是竞争?
- 在LXC上使用libcontainer