如何从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,以访问这些驱动器。
答案 0 :(得分:1)
我有这个脚本,用于在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