首页 > 解决方案 > 从 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 以访问这些驱动器。

标签: linuxwindowsdockerdockerfilenetwork-drive

解决方案


我有这个脚本用于在 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

推荐阅读