增加Boot2Docker卷大小的方法或在本地安装docker镜像的替代方法

时间:2015-04-19 06:55:53

标签: docker virtualbox boot2docker

我正在运行一个docker-machine在OS X 10.10 Yosemite上创建本地docker主机。

下面的以下脚本创建主机,然后远程登录以运行第二个脚本,该脚本安装先前已保存到本地压缩文件的图像。

#!/bin/bash

docker-machine create --driver virtualbox docker-stack
docker-machine docker-machine docker-stack-local 
stackip="$(docker-machine ip docker-stack-local)"
sshpass -p "tcuser" scp -v -r docker_images/ docker@"${stackip}":/home/docker/
cat ssh_after.sh | docker-machine ssh ec2-01 sh

ssh_after.sh脚本调用所需的docker镜像的安装:

#!/bin/bash

cd /home/docker/test
gunzip -c anaconda_bak.tgz | docker load
gunzip -c r-base_bak.tgz | docker load
gunzip -c git_bak.tgz | docker load
gunzip -c mariadb.tgz | docker load

不幸的是,创建的虚拟机卷太小而无法通过文件传输(> 1 GB)。

这是一个众所周知的问题: http://docs.docker.com/articles/b2d_volume_resize/

但是,解决方案涉及调用GUI工具,不适合脚本编写。

我想找到一种方法:

  1. 之后使用bash脚本或
  2. 调整图像大小
  3. 找到一种方法来管理压缩文件通过 ssh的stdout流传递给docker load
  4. 请注意,修改后的脚本适用于其他docker-machine驱动程序,包括AWS EC2实例。

    解决方案必须涉及安装本地docker镜像,而不是从任何类型的存储库中提取。

    为避免混淆,这是关于将图像文件放入docker主机,而不是将文件挂载到docker容器实例中。

1 个答案:

答案 0 :(得分:7)

您应该能够使用docker-machine create --virtualbox-disk-size" 35000"。将磁盘大小选项添加到构建脚本。