Docker虚拟盒子卷管理工具
docker-volume的Python项目详细描述
它提供在virtualbox实例上装载本地目录的功能 带安装选项。使用Docker工具箱。
安装
需要Docker工具箱。
$ pip install docker-volume
如何使用
配置
$repo_根/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
添加体积
$ docker-volume add EXECUTE: VBoxManage sharedfolder add default --name docker-example_redis --hostpath /path/to/hostdir/volumes/redis EXECUTE: VBoxManage sharedfolder add default --name docker-example_mysql --hostpath /path/to/hostdir/volumes/mysql EXECUTE: VBoxManage sharedfolder add default --name docker-example_mongo --hostpath /path/to/hostdir/volumes/mongo
安装体积
启动Docker机器。
$ docker-machine start default (dev) Starting VM... Machine "default" was started. Started machines may have new IP addresses. You may need to re-run the `docker-machine env` command.
装入卷。
$ docker-volume mount EXECUTE: docker-machine ssh default "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 default "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 default "sudo mkdir -p /var/lib/redis && sudo mount -t vboxsf -o uid=0,gid=0,dmode=777 docker-example_redis /var/lib/redis"
确保已安装。
$ docker-machine ssh default "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)
卸载体积
卸载卷。
$ docker-volume unmount EXECUTE: docker-machine ssh default "sudo umount /var/lib/redis" EXECUTE: docker-machine ssh default "sudo umount /var/lib/mysql" EXECUTE: docker-machine ssh default "sudo umount /var/lib/mongo"
确保它已卸下。
$ docker-machine ssh default "mount | grep /var/lib" /dev/sda1 on /mnt/sda1/var/lib/docker/aufs type ext4 (rw,relatime,data=ordered)
去除体积
停止Docker机器。
$ docker-machine stop (dev) Stopping VM... Machine "default" was stopped.
删除卷。
$ docker-volume remove EXECUTE: VBoxManage sharedfolder remove default --name docker-example_mongo EXECUTE: VBoxManage sharedfolder remove default --name docker-example_mysql EXECUTE: VBoxManage sharedfolder remove default --name docker-example_redis
卷名
卷名是${repository}directory}{volume}。
其他
如果要指定计算机名?
它指定-m或-machine选项。
$ docker-volume add --dry-run --machine example EXECUTE: VBoxManage sharedfolder add example --transient --name docker-volume_repo --hostpath /path/to/hostdir/volumes/docker-volume EXECUTE: VBoxManage sharedfolder add example --transient --name docker-volume_spam --hostpath /path/to/hostdir/volumes/spam EXECUTE: VBoxManage sharedfolder add example --transient --name docker-volume_ham --hostpath /path/to/hostdir/volumes/ham
如果要指定单个卷?
如果要操作卷,它将指定卷名。
$ docker-volume add --dry-run spam EXECUTE: VBoxManage sharedfolder add default --transient --name docker-volume_spam --hostpath /path/to/hostdir/volumes/spam
如果要操作两个卷,它将指定两个卷名。
$ docker-volume add --dry-run spam ham EXECUTE: VBoxManage sharedfolder add default --transient --name docker-volume_spam --hostpath /path/to/hostdir/volumes/spam EXECUTE: VBoxManage sharedfolder add default --transient --name docker-volume_ham --hostpath /path/to/hostdir/volumes/ham
如果未指定卷名,则所有卷都处于操作状态。