用 Docker 极速搭建 Linux 环境 Samba 文件共享服务器
Samba 是 Linux 环境下一个开源的文件共享服务软件,支持跨系统的文件网络共享。安装比较简单,在各个 Linux 发行版中都通过各自的包管理命令就能很快安装好,但后续的用户和权限的配置管理还是比较麻烦。
开始之前,先说说我搭建这个 Samba 服务的目的。我个人有两台工作用的电脑: Mac 和 Ubuntu,日常使用中时常有些文件转移的需要,平常都是用 U 盘来解决,但还是感觉插拔不太方便。特别是在 USB 口占满时。我选择在 Ubuntu 上搭建一个 Samba 服务,通过一个共享的目录来实现两台电脑文件的中转。
用 Docker 完成 Samba 的待建比较简单,首先是到 dockerhub 上搜索可用的 Samba 镜像。根据下载量和 Star 数我选择了 dperson/samba,接下来就是执行如下的命令,就启动了一个可用的 Samba 服务:
docker run -it --rm \
--name samba \
-p 139:139 -p 445:445 \
-v /home/zzxworld/Public:/mount dperson/samba \
-u "zzxworld;123456" \
-s "zzxworld;/mount/;yes;no;yes;all;all;all" \
-w "WORKGROUP" \
-g "force user=zzxworld" \
-g "guest account=zzxworld"
稍微解释一下,因为我只是个人使用,所以这里创建的是一个可以匿名访问并且可读可写的文件共享服务。其中主要的配置项是: -s "zzxworld;/mount/;yes;no;yes;all;all;all"
,这是一个用分号隔开的共享配置参数,按顺序各个参数的说明如下:<name;/path>[;browse;readonly;guest;users;admins;writelist;comment]
。完整的配置说明请参阅上面镜像的链接,这里就不重述了。
为方便使用,我把上面的命令移到了一个 shell 脚本文件: create-samba-server.sh。这样我就可以在需要的时候执行一下这个命令,用完后结束命令,避免耗费系统资源以及可能存在的安全问题。