.net - 使用 Docker Compose 在 docker windows 容器中访问网络共享的最佳选择
问题描述
我是 docker 新手,所以请容忍我的幼稚问题。我们正在尝试在 Windows 容器中托管一个 dot net 应用程序。我们成功地将应用程序托管在容器中。但是,应用程序正在访问网络共享,如 \\machinename\abc。我们尝试创建“NFS”类型的卷,但在 Windows 容器中看起来效果不佳(如何使用 docker compose v3 在容器中直接挂载 NFS 共享/卷)。
volumes:
example:
driver: local
driver_opts:
type: "nfs"
o: "addr=172.27.11.1,nolock,soft,rw"
device: ":/dockerdata"
谁能指导在 docker windows 容器中访问网络共享的选项是什么?非常感谢您的帮助。
解决方案
这是一个组合文件(带有两个容器,其中“服务器”需要来自网络共享的数据),用于 Windows 上的 docker 访问远程 Windows 网络共享上的卷。“服务器”容器目录 /data 映射到 uc3data,远程共享“\\192.168.49.53\myshare$\UC3_DATA”
version: '3.7'
volumes:
uc3data:
driver_opts:
type: cifs
o: "username=${USERNAME},password=${USERPASSWORD}"
device: "//192.168.49.53/myshare$$/UC3_DATA"
services:
server:
build:
dockerfile: Dockerfile
context: ./docker-uc3-multi
volumes:
- uc3data:/data
hostname: uc3multi
ports:
- '5000:5000'
client:
restart: always
build:
dockerfile: Dockerfile
context: ./docker-php
ports:
- '8080:80'
笔记:
- USERPASSWORD 和 USERNAME 存储在 .env 文件中。
- 我使用 IP 地址而不是远程文件服务器的名称。我的设置中的名称解析失败。
- 注意 $$ 以转义共享名称中的 $
推荐阅读
- java - 如何捕获由 Spinner 引起的 JavaFX 错误?
- browser - 是否有一种标准方法可以通过脚本或应用程序从命令行启动“裸”浏览器窗口(例如 Chrome)
- c++ - 是否可以使用 ifcplusplus 库将 .ifc 文件的几何图形转换为坐标,以便进一步转换为 .stl 格式?
- python - 尽管真正的浏览器运行良好,但 Python Selenium CORS 错误
- inheritance - 克服 Rust 缺乏继承性
- ethereum - 如何使用chainlink oracle读取json文件中的数组
- docker - 为什么 Node 应用程序无法在 Docker Swarm 上运行?
- c# - 如何在 Unity 2D 中旋转对象然后朝那个方向移动?
- sql - 跨多个列的多个单词搜索
- python - 使用 httpPost 从 Spring Boot 向 Python flask api 发送 POST 请求