在linux系統(tǒng)中部署ftp服務(wù)時(shí),我習(xí)慣將文件放置在同一個(gè)文件夾內(nèi),然后用[1]中的方法進(jìn)行權(quán)限管理和文件隔離,這樣做方便文件的統(tǒng)一管理。但是有時(shí)候,我們的想要分享的源文件規(guī)模比較大,比如是一個(gè)數(shù)據(jù)集,不可能每次要分享的時(shí)候都將其拷貝到該ftp文件夾內(nèi),因此我們想到了,欸,是否可以通過(guò)軟鏈接(soft link)[2]進(jìn)行文件的鏈接呢?這個(gè)過(guò)程有點(diǎn)像是windows系列系統(tǒng)的快捷鍵,答案是不行,這樣做是訪問(wèn)不到目標(biāo)文件的。我們可以通過(guò)mount --bind這個(gè)命令,將目標(biāo)文件掛載到ftp文件夾內(nèi)即可,具體過(guò)程見(jiàn)[3],因?yàn)檫@個(gè)掛載的映射表是儲(chǔ)存在內(nèi)存中的,因此一旦重啟這個(gè)掛載即將失效,如果需要開(kāi)機(jī)啟動(dòng),需要在/etc/rc.local文件中添加開(kāi)機(jī)啟動(dòng)項(xiàng)。
同理,在docker中,因?yàn)楹芏鄷r(shí)候需要和宿主機(jī)共享文件,為了傳遞文件方便,很多時(shí)候可以通過(guò)數(shù)據(jù)卷(volume)的方式進(jìn)行共享,以下指令簡(jiǎn)單實(shí)現(xiàn)了這個(gè)功能,并且開(kāi)啟了容器container_A:
docker -v /datas/target_data:/container_data/source_data \
-it container_A
這個(gè)命令將/datas/target_data映射到容器內(nèi)部的/container_data/source_data,并且打開(kāi)container_A,為了實(shí)現(xiàn)宿主機(jī)上不同地方的大文件的共享,同樣也可以使用mount --bind的方式進(jìn)行掛載,這里就不累述了。
Reference
[1]. 在linux系統(tǒng)上部署FTP服務(wù)時(shí)進(jìn)行權(quán)限管理(利用chown,chmod命令實(shí)現(xiàn))
[2]. linux硬鏈接與軟鏈接[3]. mount --bind使用方法