拉取pull samba镜像
sudo docker pull dperson/samba:latest
创建数据目录
mkdir /data/image
# 注意权限
sudo chown -R gestep.gestep /data/image
注意 # 如果 data下有其他数据文件,则执行如下命令
sudo chown gestep.gestep /data/
sudo chown -R gestep.gestep /data/image
编写运行脚本 run.sh
#!/bin/bash
WORKDIR=$(cd $(dirname $0); pwd)
DATADIR=/data/image
D=$(sudo which docker)
SMB=$(sudo ${D} ps -a | grep samba | awk '{print $1}')
if [[ ${SMB} != "" ]]; then
sudo ${D} stop ${SMB}
sudo ${D} rm -f ${SMB}
else
echo "samba server not runing......"
fi
echo "startup smaba server."
sudo ${D} run \
-it --name samba \
--restart=always \
-p 139:139 -p 445:445 \
-v ${DATADIR}:${DATADIR} \
-v ${WORKDIR}/conf/smb.conf:/etc/samba/smb.conf \
-d dperson/samba:latest \
-w "WORKGROUP" \
-u "admin;yoonuu@QAZ123" \
-s "image;/data/image;yes;no;no;admin;admin;admin"
STMB=$(sudo ${D} ps -a | grep samba)
if [[ ${STMB} != "" ]]; then
echo ${STMB}
echo "startup samba server successfilly."
else
echo "startup samba server faild!"
fi
运行指令详解
docker run -it \
--name samba \ #为新的容器命一个名,方便启动、停止、删除等操作,毕竟一长串字符不好输入
-p 139:139 \ #将主机的139端口映射到samba_docker这个容器的139端口上
-p 445:445 \ #将主机的445端口映射到samba_docker这个容器的445端口上
-v ${DATADIR}:${DATADIR} \ # 将主机上的共享目录向容器进行映射
-d dperson/samba:latest \ #以dperson/samba这个dockers镜像为模板,建立容器
-w "WORKGROUP" \ #从这里开始是dperson/samba 的参数,上面是docker run 的参数。这里指定了工作组
-u "admin;yoonuu@QAZ123" \ #为samba服务设置账户和密码
-s "image;/data/image;yes;no;no;admin;admin;admin" # 一定要放到最后一行,否则启动报错
最后一行以分号为间隔,分别是:
共享文件夹的名称;共享在samba容器中的路径;共享名称对所有工作组用户可见;不是只读(也就是说可写);不允许guest用户;指定共享的所有权用户;指定共享的超级用户;指定具有写权限的用户;
运行
bash run.sh
访问
# windows 测试
win + R 键
# 在弹出窗口输入
\\192.168.2.36
# 会弹出用户密码验证窗口
# 输入上边运行镜像时设置的用户名密码