如何连接到在 docker 中运行的 samba 服务器

Posted

技术标签:

【中文标题】如何连接到在 docker 中运行的 samba 服务器【英文标题】:how to connect to samba server running in docker 【发布时间】:2018-12-02 16:25:42 【问题描述】:

我在 mac 上运行 Docker 版本 17.09.0-ce-mac35。我想让一个 samba 服务器作为 docker 容器的一部分运行,然后从我的 mac 连接到正在运行的 samba 服务器。我为此使用https://github.com/dperson/samba。

我这样运行 samba 服务器:

➜  ~ sudo docker run -it -p 139:139 -p 445:445  -v /Users/anthony:/mount -d dperson/samba \
            -u "example1;badpass" \
            -u "example2;badpass" \
            -s "public;/share" \
            -s "users;/srv;no;no;no;example1,example2" \
            -s "example1 private;/example1;no;no;no;example1" \
            -s "example2 private;/example2;no;no;no;example2"

我可以 bash 进入容器并查看我在 /mount 中的所有文件。但是,当我尝试在 Finder > Go > Connect to server 中从 mac 连接到 samba 服务器时,连接时出现错误。我尝试了以下方法:

smb://0.0.0.0
smb://localhost
smb://0.0.0.0/public
smb://localhost/public
smb://<docker_ip>/
smb://<docker_ip>/public

它们都不起作用。有什么我想念的吗?还是有其他方法可以让 smb 共享在 mac 上运行以进行测试/播放?

【问题讨论】:

您是否尝试过设置功能 SYS_ADMIN 和 DAC_READ_SEARCH 就像这里解释的 github.com/moby/moby/issues/22197? 【参考方案1】:

尝试使用 Samba 用户和本地主机名进行连接: smb://example1@localhost

【讨论】:

【参考方案2】:

你忘记了端口。

试试smb://ip:139/public

【讨论】:

只有在使用非默认端口时才需要提供端口。默认的 CIFS(smb over IP)端口是 139 和 445。

以上是关于如何连接到在 docker 中运行的 samba 服务器的主要内容,如果未能解决你的问题,请参考以下文章

如何将 mysql 工作台连接到在 docker 中运行 mysql?

如何将在 Docker 容器中运行的 Grafana 连接到在主机上运行的 Prometheus 数据源(在 Docker for Mac 上)?

如何将 Pyspark 连接到在 docker 上运行的 datastax Cassandra?

如何连接到在 docker 容器上运行的远程 Jupyter Notebook?

如何将我的 docker 连接到远程数据库?

win10远程连接linux samba,如何从Win10连接到Linux Samba共享