Skip to main content

Management tool of VirtualBox Volume for Docker

Project description

It provide function of mounting local directories on the VirtualBox instance with mount option. Using Docker Toolbox.

Install

Need Docker Toolbox.

$ pip install docker-volume

How to use it

Configuration

$REPO_ROOT/docker-volume.yml

volumes:
  mysql:
    hostpath: ${here}/../volumes/mysql/
    vboxpath: /var/lib/mysql
    uid: 0
    gid: 0
    dmode: 777
  mongo:
    hostpath: ${here}/../volumes/mongo/
    vboxpath: /var/lib/mongo
    uid: 0
    gid: 0
    dmode: 777
  redis:
    hostpath: ${here}/../volumes/redis/
    vboxpath: /var/lib/redis
    uid: 0
    gid: 0
    dmode: 777

Add volume

$ docker-volume add dev
EXECUTE: VBoxManage sharedfolder add dev --name docker-example_redis --hostpath /path/to/hostdir/volumes/redis
EXECUTE: VBoxManage sharedfolder add dev --name docker-example_mysql --hostpath /path/to/hostdir/volumes/mysql
EXECUTE: VBoxManage sharedfolder add dev --name docker-example_mongo --hostpath /path/to/hostdir/volumes/mongo

Mount volume

Start docker machine.

$ docker-machine start dev
(dev) Starting VM...
Machine "dev" was started.
Started machines may have new IP addresses. You may need to re-run the `docker-machine env` command.

mount volume.

$ docker-volume mount dev
EXECUTE: docker-machine ssh dev "sudo mkdir -p /var/lib/mysql &&  sudo mount -t vboxsf -o uid=0,gid=0,dmode=777 docker-example_mysql /var/lib/mysql"
EXECUTE: docker-machine ssh dev "sudo mkdir -p /var/lib/mongo &&  sudo mount -t vboxsf -o uid=0,gid=0,dmode=777 docker-example_mongo /var/lib/mongo"
EXECUTE: docker-machine ssh dev "sudo mkdir -p /var/lib/redis &&  sudo mount -t vboxsf -o uid=0,gid=0,dmode=777 docker-example_redis /var/lib/redis"

Make sure that it is mounted.

$ docker-machine ssh dev "mount | grep /var/lib"
/dev/sda1 on /mnt/sda1/var/lib/docker/aufs type ext4 (rw,relatime,data=ordered)
none on /var/lib/mongo type vboxsf (rw,nodev,relatime)
none on /var/lib/redis type vboxsf (rw,nodev,relatime)
none on /var/lib/mysql type vboxsf (rw,nodev,relatime)

Unmount volume

Unmount volume.

$ docker-volume unmount dev
EXECUTE: docker-machine ssh dev "sudo umount /var/lib/redis"
EXECUTE: docker-machine ssh dev "sudo umount /var/lib/mysql"
EXECUTE: docker-machine ssh dev "sudo umount /var/lib/mongo"

Make sure that it is unmounted.

$ docker-machine ssh dev "mount | grep /var/lib"
/dev/sda1 on /mnt/sda1/var/lib/docker/aufs type ext4 (rw,relatime,data=ordered)

Remove volume

Stop docker machine.

$ docker-machine stop dev
(dev) Stopping VM...
Machine "dev" was stopped.

Remove volume.

$ docker-volume remove dev
EXECUTE: VBoxManage sharedfolder remove dev --name docker-example_mongo
EXECUTE: VBoxManage sharedfolder remove dev --name docker-example_mysql
EXECUTE: VBoxManage sharedfolder remove dev --name docker-example_redis

Volume name

Volume name is ${REPOSITORY_DIRECTORY_NAME}_${VOLUME_NAME}.

Development

Source code repository: https://pypi.python.org/pypi/docker-volume

Maintenance status

https://circleci.com/gh/TakesxiSximada/docker-volume.svg?style=svg

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

docker-volume-0.1.dev2.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

docker_volume-0.1.dev2-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file docker-volume-0.1.dev2.tar.gz.

File metadata

File hashes

Hashes for docker-volume-0.1.dev2.tar.gz
Algorithm Hash digest
SHA256 3234c2ac9c169e2fd3ab830f31331f44b239bb06db5967a17bbfff772efc615b
MD5 3f398d84fa3a784c58d5ccfb24aa867d
BLAKE2b-256 35259e18939ad95447301a77773314b6416320f9499118c5abe9c044cbe2ab9c

See more details on using hashes here.

File details

Details for the file docker_volume-0.1.dev2-py3-none-any.whl.

File metadata

File hashes

Hashes for docker_volume-0.1.dev2-py3-none-any.whl
Algorithm Hash digest
SHA256 eb99971e90e6a69f94f5ec05751099c40e46ce35e09a36ea17cb9c93ce0b2df4
MD5 a53fd454d36e486f4a27c06de2f5ca53
BLAKE2b-256 d1ae2609268cc4f9f1df8efd53866ad91af4fd582f8eae1ae88af77003f4936f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page