linux - 从 docker 容器访问网络驱动器
问题描述
如何从 docker 容器访问共享网络驱动器上的文件?
我试过了:
docker run --rm -it --name my_app -v //shared_drive_name:/opt/local/shared_drive my_app:1.0 /bin/bash
我也试过这里提到的方法:Docker add network drive as volume on windows
该目录/opt/local/shared_drive
已创建但为空。我尝试了不同的斜线变体,因为主机是 win 并且 docker 运行 linux。我从主机连接到 VPN 以访问这些驱动器。
解决方案
我有这个脚本用于在 Ubuntu Docker 容器中安装 Windows 共享文件夹。您必须复制图像中的脚本。然后你应该运行容器,然后调用这些命令:
docker exec container_name mkdir -p %shared folder inside docker path%
docker exec container_name /bin/bash /~path to your script~/mount_folder.sh %username% %password% %network_path% %docker_path%
例如:
docker exec container_name /bin/bash /~path to your script~/mount_folder.sh "Admin" somePassword //192.168.7.1/shared_folder /data
脚本是(mount_folder.sh):
#!/bin/bash
set -e
USERNAME=${1}
PASSWORD=${2}
NETWORK_PATH=${3}
DOCKER_PATH=${4}
mount -t cifs -o rw,username="${USERNAME}",password="${PASSWORD}",vers=3.0,nolock $NETWORK_PATH $DOCKER_PATH
推荐阅读
- windows - 如何在 Windows 上将 man 命令添加到 git bash 并包含手册
- excel - 将 2 个字符串与多个结果进行比较
- c# - 仅当使用 CommandLineParserLibrary 存在其他选项时才允许选项的简单方法
- python - Django:按[无,其他]中的值过滤
- docker - Minikube 和 Docker - 冲突?
- sorting - PySpark 使用分区选择顶级记录
- laravel - Laravel 多态关系通过 morph 名称和外键加载模型
- c - 需要为使用 c 的错误处理提供超时
- c# - C#/MongoDB 字典数组的反序列化
- javascript - Import, rename, and export a function in JavaScript?