在特定的卷上安装Docker
有没有办法在特定的卷上安装Docker?
当我使用以下命令在Amazon Linux上安装Docker时:
sudo yum install docker
然后使用以下命令启动泊坞窗服务:
sudo service docker start
它创build两个数据空间:
- 数据文件:/ dev / loop0
- 元数据文件:/ dev / loop1
我怎么能有这些空间在一个给定的卷上,例如/mnt/docker
?
那些是设备文件 。 他们将永远在/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卷和图像都存储在那里)。 为此,您可以将-g
标志提供给Docker守护进程。
在CentOS / Fedora / RHEL (可能是因为它基于RHEL和Amazon Linux ),可以修改/etc/sysconfig/docker
文件(查找OPTIONS
variables)。 在Ubuntu / Debian /etc/default/docker
中将是需要查看的地方。
我能够通过编辑/ etc / sysconfig / docker将Docker的所有数据(容器及其数据卷)存储在文件系统的不同位置(我的EBS卷)
其中有:
OPTIONS="--default-ulimit nofile=1024:4096"
我添加了-g选项,如此处所述
OPTIONS="--default-ulimit nofile=1024:4096 --graph=/home/ec2-user/myvolume"
myvolume是我挂载EBS卷的目录。 当然,你需要停止并重启docker守护进程才能生效。
这是在亚马逊Linux上。 Dockerconfiguration文件显然是在一些Linux上的/ etc / default / docker。