使用 Docker for Windows 启动 SMB 容器

Dru*_*les 6 smb docker docker-for-windows

我有一个由多个容器(在 Windows 上运行的 Linux 容器)使用的 Docker 卷。我希望能够通过 Windows 资源管理器从 Windows 计算机访问卷,最好使用网络驱动器,例如:

services:
  smbd:
    image: dperson/samba
    ports:
      - "445:445/tcp"
    volumes:
      - data:/public

...
volumes:
  data:
    external:
      name: mydrive
Run Code Online (Sandbox Code Playgroud)

在 Windows 中,我可以将驱动器 Z: 连接到\\docker.ip.address\public并能够查看其内容,例如,如果mydrive上面的卷包含子文件夹mystuff,我会在 Windows 上看到以下内容:

- Z:\mystuff
Run Code Online (Sandbox Code Playgroud)

问题是,445 已经在本地主机上使用(当然对于 SMB),并且不能使用其他端口,因为 SMB 是无情的。如果你使用虚拟机就没有问题,因为虚拟机有自己的适配器和IP,所以445又免费了。

一种可能性可能是通过不同的适配器连接 Docker(而不是尝试使用localhost:445),但我不知道如何在 Windows 上做到这一点。

需要 SMB(而不是直接通过资源管理器访问托管卷)的原因是为了可以在 Docker 中轻松切换卷。对于我来说,仍然适用于 Docker 卷的替代方案也可以。