如何增加boot2docker虚拟机中的可用交换空间?

我想运行一个docker容器,需要大量内存不足的机器上。 我一直试图增加可用的容器交换空间无济于事。 这是我尝试的最后一个命令:

docker run -d -m 1000M --memory-swap=10000M --name=my_container my_image 

按照这些关于如何检查内存指标的提示 ,我发现了以下内容:

 $ boot2docker ssh docker@boot2docker:~$ cat /sys/fs/cgroup/memory/docker/35af5a072751c7af80ce7a255a01ab3c14b3ee0e3f15341f7bb22a777091c67b/memory.stat cache 454656 rss 65015808 rss_huge 29360128 mapped_file 208896 writeback 0 swap 0 pgpgin 31532 pgpgout 22702 pgfault 49372 pgmajfault 0 inactive_anon 28672 active_anon 65183744 inactive_file 241664 active_file 16384 unevictable 0 hierarchical_memory_limit 1048576000 hierarchical_memsw_limit 10485760000 total_cache 454656 total_rss 65015808 total_rss_huge 29360128 total_mapped_file 208896 total_writeback 0 total_swap 0 total_pgpgin 31532 total_pgpgout 22702 total_pgfault 49372 total_pgmajfault 0 total_inactive_anon 28672 total_active_anon 65183744 total_inactive_file 241664 total_active_file 16384 total_unevictable 0 

是否有可能在只有4G物理内存的机器上运行需要5G内存的容器?

这个GitHub问题对于如何增加boot2docker-vm中可用的交换空间非常有帮助。 使其适应我的情况我使用以下命令ssh进入boot2docker-vm并设置一个新的交换文件:

 boot2docker ssh export SWAPFILE=/mnt/sda1/swapfile sudo dd if=/dev/zero of=$SWAPFILE bs=1024 count=4194304 sudo mkswap $SWAPFILE sudo chmod 600 $SWAPFILE sudo swapon $SWAPFILE exit