我们正在努力在Docker中创建标准的“数据科学”图像,以帮助我们的团队保持一致的环境。为了使这对我们有用,我们需要容器对我们公司的网络具有读/写访问权限。如何将网络驱动器安装到docker容器?
这是我尝试使用Docker Hub的摇杆/ 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>
现在,(假设带有CIF的centos并在容器中成为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
现在你应该有权访问
希望这可以帮助..