簡體   English   中英

docker 容器如何在不在主機操作系統中安裝共享的情況下獲得對 Windows 共享的完全訪問權限?

[英]How can a docker container get full access to a windows share without mounting the share in the host OS?

我在 linux 上使用 docker,我希望允許我的容器完全訪問具有以下結構的 Windows 共享(名為 myshare,具有適當的權限集):

d:\myshare
       foo
       bar

作為測試,我已經驗證將以下內容放入/etc/fstab將創建一個安裝,允許我 RW 到 Windows 共享。

//172.16.68.6/myshare  /home/me/foo  cifs username=myuser,password=mypass,domain=172.16.68.6,uid=1000

我希望能夠在 docker 中創建一個卷,而不是使用/etc/fstab ,這樣我就可以在 docker-compose.yml 中執行以下操作

volumes:
  - /myshare/foo:/foo

理想情況下,我希望能夠創建一個卷,然后只需附加目錄名稱(就像我在上面對foo所做的那樣),這樣我就不必創建多個卷。 但到目前為止,我什至無法在連接到 Windows 共享的 docker 主機上創建安裝。 我什至不知道如何“窺視”卷的內部。 我試過使用 portainer,但它告訴我沒有使用音量。

我如何創建這個卷並使用它(最好在 docker-compose 中)?

我認為答案是使用docker volume插件。 https://docs.docker.com/engine/extend/plugins_volume/

優選地,已經存在一個。 搜索它,找到它,並按照其說明進行操作。 您應該能夠做到。 查看https://docs.docker.com/engine/extend/legacy_plugins/尋找可能的候選人。

或者,您可以編寫自己的Docker卷插件。 請確保將其發布以使他人受益。 這將需要大量的技能,因此可能不切實際。

這是我的 docker-compose.yml 對我有用。 您必須使用路徑中的 ip 地址:

version: '3.3'
services:
  my-service:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - logs:/mnt/logs

volumes:
  spark_logs:
    driver: local
    driver_opts:
      type: cifs
      device: "//10.1.1.7/path/prd/sist/log"
      o: username=${USER},password=${PASS},file_mode=0444,dir_mode=0444

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM