泊坞窗磁盘空间不足

我在docker和卷大小hainvg麻烦。 我正在运行三个容器的docker机器。 给我麻烦的一个是MySQL容器,它具有一个持久数据的容器。 当我尝试导入一个mysql文件时,mysql抱怨表已满 ,这意味着磁盘空间不足。 看看这个系统,我看到了这个问题,但是不知道如何改正它:

_ _ ____ _ _ | |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __ | '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__| | |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ | |_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_| Boot2Docker version 1.8.1, build master : 7f12e95 - Thu Aug 13 03:24:56 UTC 2015 Docker version 1.8.1, build d12ea79 docker@default:~$ sudo -i Boot2Docker version 1.8.1, build master : 7f12e95 - Thu Aug 13 03:24:56 UTC 2015 Docker version 1.8.1, build d12ea79 root@default:~# df -h Filesystem Size Used Available Use% Mounted on tmpfs 896.6M 112.4M 784.2M 13% / tmpfs 498.1M 136.0K 498.0M 0% /dev/shm /dev/sda1 2.8G 2.7G 0 100% /mnt/sda1 cgroup 498.1M 0 498.1M 0% /sys/fs/cgroup none 462.2G 32.8G 429.5G 7% /Users /dev/sda1 2.8G 2.7G 0 100% /mnt/sda1/var/lib/docker/aufs none 2.8G 2.7G 0 100% /mnt/sda1/var/lib/docker/aufs/mnt/0a90321d2e941e31385a4c4096e none 2.8G 2.7G 0 100% /mnt/sda1/var/lib/docker/aufs/mnt/bca6fc0c017233ed634e7e19284 none 2.8G 2.7G 0 100% /mnt/sda1/var/lib/docker/aufs/mnt/7e432f020ee8fc9c6a211c810e5 

我创造了这样的docker机器,我认为这会给我我需要的空间,但它没有。

 docker-machine create --virtualbox-disk-size 4000 -d virtualbox default 

我正在创build像这样的mysql映像

 #!/bin/bash echo "- checking that the image exists" IMAGE=$(docker images | grep cp_mysql) if [ -z "$IMAGE" ]; then echo '- image does not exist, building' docker build -t cp_mysql -f Dockerfile-app . fi echo "- checking if the mysql data volume exists" DATA_VOL=$(docker ps -a | grep cp_mysql_data) # if empty if [ -z "$DATA_VOL" ]; then echo '- data volume is empty - building' DATA_VOL=$(docker build -t data -f Dockerfile-data_vol . | tail -n 1 | awk '{print $3}') docker run --name cp_mysql_data $DATA_VOL echo "- build data volume: $DATA_VOL" else DATA_VOL=$(echo $DATA_VOL | awk '{print $1}') echo "- data volume is not empty - using existing volume: $DATA_VOL" fi echo '- check if existing cp_mysql_app exists' APP=$(docker ps -a | grep cp_mysql_app) if [ -z "$APP" ]; then echo '- the app does not exist, let us create it' docker run \ --restart=always \ --name cp_mysql_app \ --restart=always \ --volumes-from=cp_mysql_data \ -e MYSQL_USER=cp \ -e MYSQL_PASSWORD=cp \ -e MYSQL_DATABASE=cp \ -e MYSQL_ROOT_PASSWORD=root \ -d \ -p 3306:3306 cp_mysql else echo '- the does exist, let us just run it' docker start cp_mysql_app fi 

这是我的该机器的docker信息

 docker@default:~$ docker info Containers: 0 Images: 0 Storage Driver: aufs Root Dir: /mnt/sda1/var/lib/docker/aufs Backing Filesystem: tmpfs Dirs: 0 Dirperm1 Supported: true Execution Driver: native-0.2 Logging Driver: json-file Kernel Version: 4.0.9-boot2docker Operating System: Boot2Docker 1.8.1 (TCL 6.3); master : 7f12e95 - Thu Aug 13 03:24:56 UTC 2015 CPUs: 1 Total Memory: 996.2 MiB Name: default ID: XLSE:62WR:VWCR:T2Z6:FSE3:NTLV:EQRT:WLW5:NLPF:HPQH:JQGR:K4LZ Debug mode (server): true File Descriptors: 9 Goroutines: 16 System Time: 2015-09-08T16:31:38.029737031Z EventsListeners: 0 Init SHA1: Init Path: /usr/local/bin/docker Docker Root Dir: /mnt/sda1/var/lib/docker Labels: provider=virtualbox 

我基本上需要的是无限空间/dev/sda1 ,或者能够指定一个大的磁盘大小。 我知道这起源于我对docker工作的误解,但是我认为这个线程会启动我的研究。

提前致谢。

需要以MB为单位input选项--virtualbox-disk-size (请参阅Docker Machine Docs )。 您创build了4GB的机器。 这使docker 2.8GB用于在/dev/sda1上存储图像和运行容器。

docker-machine create使用的磁盘大小的缺省值是20GB(根据上面链接的文档)。 运行docker images -a将显示您拉出的图像需要多less磁盘空间。 这会给你一个指示你需要多less空间。

通常20GB是一个很好的大小来拉几个不同的图像,并运行一些容器。 所以也许你用默认的磁盘大小创build一个新的机器,并尝试再次导入mysql文件。