Samba 是 SMB/CIFS 网络协议的从新实现, 它做为 NFS 的补充使得在 Linux、OS/二、DOS 和 Windows 系统中进行文件共享、打印机共享更容易实现。SMB协议是客户机/服务器型协议,客户机经过该协议能够访问服务器上的共享文件系统、打印机及其余资源。经过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。linux
这里经过使用docker镜像的方式来简化samba的安装, 来实现不一样系统之间共享目录。git
运行dockergithub
sudo docker run -it -p 139:139 -p 445:445 -d dperson/samba
若是要使用本地存储,则能够:docker
sudo docker run -it --name samba -p 139:139 -p 445:445 \ -v /path/to/directory:/mount \ -d dperson/samba
配置参数:服务器
docker run -it --rm dperson/samba -h Usage: samba.sh [-opt] [command] Options (fields in '[]' are optional, '<>' are required): -h This help -c "<from:to>" setup character mapping for file/directory names required arg: "<from:to>" character mappings separated by ',' -g "<parameter>" Provide global option for smb.conf required arg: "<parameter>" - IE: -g "log level = 2" -i "<path>" Import smbpassword required arg: "<path>" - full file path in container -n Start the 'nmbd' daemon to advertise the shares -p Set ownership and permissions on the shares -r Disable recycle bin for shares -S Disable SMB2 minimum version -s "<name;/path>[;browse;readonly;guest;users;admins;writelist;comment]" Configure a share required arg: "<name>;</path>" <name> is how it's called for clients <path> path to share NOTE: for the default value, just leave blank [browsable] default:'yes' or 'no' [readonly] default:'yes' or 'no' [guest] allowed default:'yes' or 'no' [users] allowed default:'all' or list of allowed users [admins] allowed default:'none' or list of admin users [writelist] list of users that can write to a RO share [comment] description of share -u "<username;password>[;ID;group]" Add a user required arg: "<username>;<passwd>" <username> for user <password> for user [ID] for user [group] for user -w "<workgroup>" Configure the workgroup (domain) samba should use required arg: "<workgroup>" <workgroup> for samba -W Allow access wide symbolic links -I Add an include option at the end of the smb.conf required arg: "<include file path>" <include file path> in the container, e.g. a bind mount The 'command' (if provided and valid) will be run instead of samba
示例网络
如今要将目录xw_share, 经过139和445端口进行共享, 并建立用户xw(密码为:overkill),禁用匿名用户访问,而且容许用户xw读写操做,能够以下设置:app
docker run -it --name samba -p 139:139 -p 445:445 \ -v $PWD/nl_share:/mount -d dperson/samba -u "xw;overkill" -s "xw;/mount/;yes;no;no;all;xw;xw"
参考:dom