Search code examples
dockerboot2docker

boot2docker host bind mount volume size limited to 1.8 GB


I'm playing with volume containers on boot2docker to run Docker on MacOS X.

boot2docker version
Client version: v1.2.0
Git commit: a551732

I'm trying to perform the backup/restore process which is mentioned in Docker's documentation.

I'm trying to backup a MySQL database which is over 2 GB. When I run the backup command:

docker run --volumes-from data_volume -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /var/lib/mysql

...if fails with this error:

tar: /backup/backup.tar: Wrote only 4096 of 10240 bytes
tar: Error is not recoverable: exiting now

It seems tar is out of disk space. So I got into my container and looked at the host bind mount and its size is 1.8 GB.

docker run -t -i -v $HOME:/demo ubuntu /bin/bash
root@bb3921a48ba4:/# df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs           19G  8.3G  9.1G  48% /
none             19G  8.3G  9.1G  48% /
tmpfs          1005M     0 1005M   0% /dev
shm              64M     0   64M   0% /dev/shm
/dev/sda1        19G  8.3G  9.1G  48% /etc/hosts
tmpfs           1.8G  1.8G     0 100% /demo
tmpfs          1005M     0 1005M   0% /proc/kcore

You can see that /demo is only 1.8G...

I don't know how to extend this size so I would be able to make large backups...

Any idea? Thanks!


Solution

  • I have this sneaking feeling that you're running out of memory - as 2GB is the default amount of ram we allocate.

    Rather than writing to a file, mapped to a virtual filesystem that is attached to your OSX box's FS, I'd suggest running the tar to output to STDOUT, and then pipe that to your local box.

    ie

    docker run --rm ubuntu tar cf - /etc > test.tar