我们正在努力在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>
现在,(假设 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
现在你应该可以访问了
希望这可以帮助..
我会写下我的决定。我有一台 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)
| 归档时间: |
|
| 查看次数: |
3626 次 |
| 最近记录: |