Docker-compose 部署samba

背景:

.Samba服务简介

1.SMB 是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
2.Samba是Linux与Linux或Windows之间实现文件共享及打印机等共享服务。
3.Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成。

实验环境:

本次采用docker-compose 方式来安装samba服务,优点部署快方便使用。

部署docker-compose:

Docker-compose 安装使用-CSDN博客

创建docker-compose.yml:

mkdir /opt/samba
cd /opt/samba
vi docker-compose.yml

version: '3'
services:
   samba:
        image: 'dperson/samba:latest'
        restart: unless-stopped
        ports:
        - "137:137/udp"
        - "138:138/udp"
        - '139:139/tcp'
        - '445:445/tcp'
        volumes:
        - ./mount:/mount                 #可以根据需求进行更改
        - /data:/data                    #可以根据需求进行更改
        - /home/app/:/app                #可以根据需求进行更改           
        environment:
          TZ: Asia/Shanghai              #设置时区
        command:
        - '-n'
        - '-p'
        - '-r'
        - '-u'
        - "root;Root@1234"              #创建用户root 并设置一个密码为Root@1234,可以创建多个
        - "-s"
        - "public;/mount;;;;;;;文件访问目录"
        - "-s"
        - "scm;/mount;yes;no;no;root;;;文件管理目录"
        - "-s"
        - "backup;/data/backup;yes;no;no;root;root;root;备份文件目录"
        - "-s"
        - "share;/app/share;yes;no;yes;;;;共享文件目录"

networks:
  default:
    external:
      name: samba-network
启动samba 容器:
docker network create samba-network                #创建一个名字为samba-network 的docker 网络
docker-compose up -d                               #后台方式启动docker-compose

查看samba容器启动情况

设置用户名密码:

##设置samba用户前提是系统中存在的用户,如果不存在请先创建系统用户。

docker exec -it home-samba-1 /bin/bash                #进入容器
useradd proc                                          
smbpasswd -a proc                                     #创建一个名字为proc的samba用户

smbpasswd命令的常用方法
smbpasswd -a 增加用户(要增加的用户必须以是系统用户)
smbpasswd -d 冻结用户,就是这个用户不能在登录了
smbpasswd -e 恢复用户,解冻用户,让冻结的用户可以在使用
smbpasswd -n 把用户的密码设置成空. 要在global中写入 null passwords -true
smbpasswd -x 删除用户

增加samba存放数据目录:

在容器中找到配置文件 

docker exec -it home-samba-1 /bin/bash                #进入容器
vi /etc/samba/smb.conf

#插入
[proc]                                                #更改名字
   path = /app/proc                                   #容器内文件路径
   browsable = yes
   read only = no
   guest ok = yes
   veto files = /.apdisk/.DS_Store/.TemporaryItems/.Trashes/desktop.ini/ehthumbs.db/Network Trash Folder/Temporary Items/Thumbs.db/
   delete veto files = yes
   comment = ..................

保存好信息后退出容器Ctrl+pq

docker inspect home-samba-1   查看容器home-samba-1 详细配置

 #找到下面配置,说明容器内部的容器卷映射在容器外部的/home/app 目录下,需要去目录下去创建一个新增的文件夹,新增的文件夹的名字是新创建的名字
 #"Type": "bind",
 #               "Source": "/home/app",
 #               "Destination": "/app",
 #               "Mode": "rw",
 #               "RW": true,
 #               "Propagation": "rprivate"
 
mkdir /home/app/proc                    
访问验证:

输入\\samba ip地址

用户权限问题:

[proc]
comment = A is a proc dir                            #描述信息
public = Yes
path = /mnt/A                                              #文件目录
browseable = Yes                   
writable = no                                               # 默认关闭所有用户写权限
guest ok = no
create mask = 0777                                    #权限
directory mask = 0777                                #权限
valid users = user1,user2         #给与user1,user2可读权限,user3不在此出现,任何没有权限
write list = user1                       # 只打开user1的写权限
 

  • 24
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值