有没有办法在特定卷上安装Docker?
当我使用以下命令在Amazon Linux上安装Docker时:
sudo yum install docker
然后使用以下命令启动docker服务:
sudo service docker start
它创建了两个数据空间:
如何将这些空格放在给定的卷上,例如/mnt/docker
?
答案 0 :(得分:1)
这些是设备文件。它们总是在/dev
中(实际上不是,但为了简单起见,我们只是假设这里)。 loop0
和loop1
是循环设备,由实际的Docker卷文件支持。您可以使用losetup -l
:
> losetup -l
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0 0 0 1 0 /var/lib/docker/devicemapper/devicemapper/data
/dev/loop1 0 0 1 0 /var/lib/docker/devicemapper/devicemapper/metadata
您可能想要做的事情(取决于您的文件系统布局)将Docker运行时目录移动到其他位置(默认为/var/lib/docker
;所有Docker卷和图像都存储在那里) 。为此,您可以向Docker守护程序提供-g
标志。
在 CentOS / Fedora / RHEL (可能,因为它基于RHEL,也是 Amazon Linux ),您可以修改{{1}这个文件(查找/etc/sysconfig/docker
变量)。在 Ubuntu / Debian OPTIONS
中可以查看。
答案 1 :(得分:0)
我能够通过编辑/ etc / sysconfig / docker
让docker将所有数据(容器及其数据卷)存储在文件系统(我的EBS卷)的不同位置有一行:
OPTIONS="--default-ulimit nofile=1024:4096"
我添加了-g选项,如文档here
所示OPTIONS="--default-ulimit nofile=1024:4096 --graph=/home/ec2-user/myvolume"
其中myvolume是我安装EBS卷的目录。当然,您需要停止并重新启动docker守护程序才能使其生效。
这是在亚马逊Linux上。显然,某些Linux上的docker配置文件是/ etc / default / docker。