如何在Docker for Windows中安装网络卷(Windows 10)

Kin*_*rds 11 windows docker

我们正在努力在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比较新,所以如果我不是很清楚,请告诉我.

lev*_*kin 6

我知道这相对较旧 - 但为了其他人 - 这通常对我有用。使用 - 我们使用 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而不是Linux中挂载。这个问题是如何出现在答案顶部的? (2认同)

Але*_*лев 6

我会写下我的决定。我有一台 Synology NAS。共享文件夹使用smb协议。我设法通过以下方式连接它。最重要的是编写1.0版本(vers=1.0)。没有它就无法工作!我尝试了2天来解决这个问题。

version: "3"

services:
  redis:
    image: redis
    restart: always
    container_name: 'redis'
    command: redis-server
    ports:
      - '6379:6379'
    environment:
      TZ: "Europe/Moscow"

  celery:
    build:
      context: .
      dockerfile: celery.dockerfile
    container_name: 'celery'
    command: celery --broker redis://redis:6379 --result-backend redis://redis:6379 --app worker.celery_worker   worker --loglevel info
    privileged: true
    environment:
      TZ: "Europe/Moscow"
    volumes:
      - .:/code
      - nas:/mnt/nas
    links:
      - redis
    depends_on:
      - redis

volumes:
  nas:
    driver: local
    driver_opts:
      type: cifs
      o: username=user,password=pass,**vers=1.0**
      device: "//192.168.10.10/main"
Run Code Online (Sandbox Code Playgroud)