You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在单个Docker容器中运行Samba与SFTP镜像?不使用docker-compose及Dockerfile

在单个Docker容器中运行Samba与SFTP服务(无需Dockerfile或docker-compose)

Docker容器本质基于单个镜像启动,但可通过启动时执行自定义命令,在容器内同时安装并运行Samba和SFTP服务。以下是具体实现方案:

核心思路

选择带完整包管理工具的基础镜像(如Debian/Ubuntu),在容器启动流程中安装Samba与OpenSSH Server(SFTP依赖),完成服务配置后同时启动两者,并通过前台进程维持容器运行状态。

具体执行命令

运行以下docker run命令即可创建并启动包含双服务的容器:

docker run -d \
  --name samba-sftp \
  -p 22:22 \          # 映射SFTP端口
  -p 445:445 \        # 映射Samba端口
  -v /your/local/shared:/shared \  # 本地共享目录挂载到容器内
  -e SFTP_USER=sftpuser \          # 自定义SFTP用户名
  -e SFTP_PASS=sftppass \          # 自定义SFTP密码
  -e SAMBA_PASS=sftppass \         # 自定义Samba密码(建议与SFTP一致)
  debian:latest \
  bash -c "apt-get update && apt-get install -y samba openssh-server && \
  # 创建SFTP系统用户并设置密码
  useradd -m \$SFTP_USER && echo \"\$SFTP_USER:\$SFTP_PASS\" | chpasswd && \
  # 为用户设置Samba访问密码
  echo \"\$SAMBA_PASS\" | smbpasswd -s -a \$SFTP_USER && \
  # 配置Samba共享规则
  echo '[shared]
path = /shared
browseable = yes
read only = no
valid users = \$SFTP_USER' >> /etc/samba/smb.conf && \
  # 调整SSHD配置允许密码登录
  sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config && \
  # 创建SSHD运行必需的目录
  mkdir -p /run/sshd && \
  # 后台启动Samba,启动SSHD,用tail维持容器前台运行
  /usr/sbin/smbd -D && /usr/sbin/sshd && tail -f /dev/null"

关键细节说明

  • 端口与目录:替换/your/local/shared为本地实际共享目录,确保22、445端口未被本地服务占用。
  • 安全优化:通过环境变量传入账号密码,避免硬编码;若需限制SFTP用户仅能访问共享目录,可在bash -c命令中添加以下SSHD配置:
    sed -i '/Subsystem sftp/s/^/#/' /etc/ssh/sshd_config && \
    echo 'Subsystem sftp internal-sftp' >> /etc/ssh/sshd_config && \
    echo 'Match User \$SFTP_USER
    ChrootDirectory /shared
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no' >> /etc/ssh/sshd_config
    
  • 容器存活:tail -f /dev/null作为容器主进程,防止因Samba、SSHD后台运行导致容器自动退出。

服务验证

  • SFTP连接:执行ssh sftpuser@localhost -p 22,输入设置的密码即可登录。
  • Samba访问:在本地文件管理器中访问\\localhost\shared,输入账号密码即可访问共享目录。

内容的提问来源于stack exchange,提问作者loki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 18:17:25