在 Ubuntu 下通过 Docker 部署 Samba 服务器

Samba 是一个开源软件套件,允许在 Linux 和 Windows 之间共享文件和打印机。它实现了 SMB/CIFS 协议,使得不同操作系统之间的互操作性变得简单高效。Docker 是一个流行的容器化平台,可以快速打包、分发和管理应用程序。通过 Docker 部署 Samba,不仅可以简化安装过程,还能保证环境的一致性,非常适合开发和测试。

一、使用到的 Docker 和 Samba 软件简介

  • Docker:Docker 是一个开源的应用容器引擎,能够将应用及其依赖打包成一个标准化的容器。容器能够在任何支持 Docker 的环境中运行,确保了跨平台的兼容性和灵活性。
  • Samba:Samba 允许 Linux 用户通过 SMB/CIFS 协议访问和共享文件,与 Windows 系统无缝集成。它被广泛应用于企业和家庭网络中,提供了文件共享及打印服务。

二、在 Ubuntu 下通过 Docker 部署 Samba 服务器的步骤

步骤 1:安装 Docker

首先,确保你的 Ubuntu 系统已安装 Docker。如果没有,可以使用以下命令进行安装:

复制代码
sudo apt update
sudo apt install docker.io

安装完成后,启动 Docker 并设置为开机自启:

复制代码
sudo systemctl start docker
sudo systemctl enable docker

步骤 2:拉取 Samba 镜像

接下来,拉取 Samba 的 Docker 镜像:

复制代码
sudo docker pull dperson/samba

步骤 3:创建共享目录

创建一个目录用于存放共享文件:

复制代码
mkdir -p /srv/samba/share

步骤 4:运行 Samba 容器

运行 Samba 容器并配置共享:

复制代码
sudo docker run -d \
  -p 137:137 -p 138:138 -p 139:139 -p 445:445 \
  -v /srv/samba/share:/mount \
  -e SAMBA_USER=your_username \
  -e SAMBA_PASS=your_password \
  --name samba-server \
  dperson/samba -u "your_username;your_password" -s "share;/mount;yes;no;yes;all"

参数解释

  • -d:后台运行容器。
  • -p:映射主机端口到容器端口,确保 Samba 的协议端口能够被访问。
  • -v:将主机目录挂载到容器内,便于访问共享文件。
  • -e:设置环境变量,配置 Samba 用户及密码。
  • --name:指定容器名称。
  • -s:定义共享的配置,包括名称、路径、访问权限等。

步骤 5:访问 Samba 共享

在 Windows 或其他 Linux 系统中,可以通过以下路径访问 Samba 共享:

复制代码
\\<your_server_ip>\share

输入用户名和密码即可访问共享文件夹。

小结

通过以上步骤,你已经成功在 Ubuntu 上通过 Docker 部署了 Samba 服务器。现在可以轻松实现跨平台的文件共享了。记得根据实际需求调整用户和共享配置,玩得开心!

相关推荐
行云流水剑1 小时前
【学习记录】在 Ubuntu 中将新硬盘挂载到 /home 目录的完整指南
服务器·学习·ubuntu
藥瓿亭1 小时前
K8S认证|CKS题库+答案| 7. Dockerfile 检测
运维·ubuntu·docker·云原生·容器·kubernetes·cks
搬码临时工2 小时前
如何把本地服务器变成公网服务器?内网ip网址转换到外网连接访问
运维·服务器·网络·tcp/ip·智能路由器·远程工作·访问公司内网
鳄鱼杆2 小时前
服务器 | Centos 9 系统中,如何部署SpringBoot后端项目?
服务器·spring boot·centos
杰哥技术分享3 小时前
在 CentOS 上安装 Docker 和 Docker Compose 并配置使用国内镜像源
linux·docker·centos
xiangyong583 小时前
ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
linux·ubuntu·gnu
Gold Steps.3 小时前
Docker容器部署elasticsearch8.*与Kibana8.*版本使用filebeat采集日志
运维·docker·云原生·es
weixin_461259414 小时前
[C]C语言日志系统宏技巧解析
java·服务器·c语言
m0_637146934 小时前
C语言基础面试问答
运维·服务器
Clownseven4 小时前
SSH/RDP无法远程连接?腾讯云CVM及通用服务器连接失败原因与超全排查指南
服务器·ssh·腾讯云