在任意运行 Docker 服务的服务器上,可以简单的使用 Docker 来搭建 Samba 服务,将服务器上的制定目录共享本地局域网或远程共享(有公网地址)使用。
实现此服务的基础是 dperson/samba「GitHub」 。镜像存储在 dperson/samba「DockerHub」 。条件允许英文过关可以去看详细使用说明。
1、建立共享目录
mkdir /home/share ## 建立共享文件夹,位置任意
chmod 777 /home/share ## 修改权限以便有用户名密码的人均可访问
2、拉取镜像
docker pull dperson/samba
3、运行容器
docker run -it --name samba -p 139:139 -p 445:445 -v /home/shared:/mount -d dperson/samba -u "username;password" -r -s "shared;/mount/;yes;no;no;all;user"
网传加上 -g "aio read size = 0" -g "aio write size = 0"
参数会加速Win和Mac速度,我没试出来,反正有总比没有好。那完整的命令如下:
docker run -it --name samba -p 139:139 -p 445:445 \
-v /home/shared:/mount \
-d dperson/samba \
-u "username;password" \ ## Samba用户名及密码,可写多行-u来增加多个用户
-g "aio read size = 0" \
-g "aio write size = 0" \
-r \ ## 禁用回收站,需要的话就删去此行
-s "Downloads;/mount/;yes;no;no;all;user"
## 显示的名称;路径;可浏览;只读;匿名;允许用户;管理员
## 管理员参数可以是none或者-u参数指定的用户名,指定用户名可解决文件夹不能删除的问题