windows - 如何在 Docker for Windows (Windows 10) 中挂载网络卷

标签 windows docker

我们正在努力在 Docker 中创建标准的“数据科学”镜像,以帮助我们的团队保持一致的环境。为了让这对我们有用,我们需要容器对我们公司的网络具有读/写访问权限。如何将网络驱动器挂载到 docker 容器?

这是我尝试使用来自 Docker Hub 的 rocker/rstudio 镜像:

这行得通:

docker run -d -p 8787:8787 -v//c/users/{insert user}:/home/rstudio/foobar rocker/rstudio

这不起作用(其中 P 是网络驱动器的映射位置): docker run -d -p 8787:8787 -v//p:/home/rstudio/foobar rocker/rstudio

这也不起作用: docker run -d -p 8787:8787 -v//10.1.11.###/projects:/home/rstudio/foobar rocker/rstudio

有什么建议吗?

我对 Docker 比较陌生,所以如果我不是很清楚,请告诉我。

最佳答案

我知道这是相对较旧的 - 但为了其他人 - 这通常对我有用。使用 - 我们使用 Windows 文件服务器,因此我们使用 cifs-utils 来映射驱动器。我假设以下说明也可以应用于 nfs 或其他任何东西。

首先 - 需要以特权模式运行容器,以便您可以在容器内挂载远程文件夹(可能不需要 --dns 标志)
docker run --dns <company dns ip> -p 8000:80 --privileged -it <container name and tag>

现在,(假设 centos 带有 cifs 并且在容器中是 root) - 跳入容器并运行:

如果尚未安装,请安装 cifs-utils
yum -y install cifs-utils

创建要映射的本地目录
mkdir /mnt/my-mounted-folder

准备一个包含用户名和凭据的文件
echo "username=<username-with-access-to-shared-drive>" > ~/.smbcredentials
echo "password=<password>" > ~/.smbcredentials

映射远程文件夹
mount <remote-shared-folder> <my-local-mounted-folder> -t cifs -o iocharset=utf8,credentials=/root/.smbcredentials,file_mode=0777,dir_mode=0777,uid=1000,gid=1000,cache=strict

现在您应该可以访问了

希望这会有所帮助..

关于windows - 如何在 Docker for Windows (Windows 10) 中挂载网络卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42287408/

相关文章:

windows - 如何使 2021 年 1 月 12 日之后的 flash 可执行文件工作?

c# - 如何从 WinForms 应用程序控制新进程窗口的大小和位置?

docker - gcloud 模拟器迅速填满所有 Docker 磁盘空间

Docker 在构建期间记录网络流量

docker - rabbitmq-server - 与非 root 用户分离被阻塞

Docker Rails 应用程序和 git

docker - 测量docker容器的执行时间

javascript - 显示从 Jscript 运行的 shell 命令的输出

c - Windows 上的 libeio

windows - sed 或 awk - 需要获取子字符串并将其附加到行尾