如何解决是通过 docker 镜像还是通过 docker 主机连接到 SMB 共享来访问 SMB 共享?
我有一或三个服务需要访问同一个 SMB 共享。服务在 Docker 容器内运行。我认为我的选择是:
- 让运行服务的 Docker 容器挂载 SMB 共享本身
- 让 Docker 容器的主机挂载 SMB 共享,然后与运行服务的 Docker 容器共享
从最佳实践的角度来看,哪个更好(可能应该将安全作为一个维度)?
我错过了一个选项吗?
谢谢!
解决方法
在标准 Docker 中,您几乎应该总是在主机上挂载文件系统,然后使用绑定挂载将挂载的文件系统附加到容器。
容器通常不能调用mount(2),典型的镜像不会包含smbclient(1)或mount.cifs (8) 并且安全地将凭据传递到容器中是很棘手的。在主机上进行挂载会容易得多,而且您可以针对挂载的文件系统使用标准映像,而无需对其进行自定义以添加特定于站点的工具。
,一种方法是照常在主机系统上挂载 SMB 共享,例如,如果您在 Linux 上使用 ds
和 from matplotlib import pyplot as plt
import numpy as np
np.random.seed(42)
x,y = 10*np.random.rand(2,8)
# length of line segment
ds=1
# number of line segments per interval
Ns = np.round(np.sqrt( (x[1:]-x[:-1])**2 + (y[1:]-y[:-1])**2 ) / ds).astype(int)
# sub-divide intervals w.r.t. Ns
subdiv = lambda x,Ns=Ns: np.concatenate([ np.linspace(x[ii],x[ii+1],Ns[ii]) for ii,_ in enumerate(x[:-1]) ])
x,y = subdiv(x),subdiv(y)
plt.quiver(x[:-1],y[:-1],x[1:]-x[:-1],y[1:]-y[:-1],scale_units='xy',angles='xy',scale=1,width=.004,headlength=4,headwidth=4)
。之后,您可以使用 docker 卷将主机系统上的 SMB 共享添加到容器中作为卷。
使用 docker 卷的优点在 docker 文档中进行了说明。
docker 文档中有关 docker 卷的更多信息, https://docs.docker.com/storage/volumes/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。