在linux系统中ftp或者docker的数据卷中使用mount --bind

linux系统中部署ftp服务时,我习惯将文件放置在同一个文件夹内,然后用[1]中的方法进行权限管理和文件隔离,这样做方便文件的统一管理。但是有时候,我们的想要分享的源文件规模比较大,比如是一个数据集,不可能每次要分享的时候都将其拷贝到该ftp文件夹内,因此我们想到了,欸,是否可以通过软链接(soft link)[2]进行文件的链接呢?这个过程有点像是windows系列系统的快捷键,答案是不行,这样做是访问不到目标文件的。我们可以通过mount --bind这个命令,将目标文件挂载到ftp文件夹内即可,具体过程见[3],因为这个挂载的映射表是储存在内存中的,因此一旦重启这个挂载即将失效,如果需要开机启动,需要在/etc/rc.local文件中添加开机启动项。

同理,在docker中,因为很多时候需要和宿主机共享文件,为了传递文件方便,很多时候可以通过数据卷(volume)的方式进行共享,以下指令简单实现了这个功能,并且开启了容器container_A:

docker -v /datas/target_data:/container_data/source_data \
       -it container_A

这个命令将/datas/target_data映射到容器内部的/container_data/source_data,并且打开container_A,为了实现宿主机上不同地方的大文件的共享,同样也可以使用mount --bind的方式进行挂载,这里就不累述了。

Reference

[1]. 在linux系统上部署FTP服务时进行权限管理(利用chown,chmod命令实现)
[2]. linux硬链接与软链接
[3]. mount --bind使用方法

posted @ 2018-12-17 21:10  FesianXu  阅读(95)  评论(0编辑  收藏  举报