我想根據安裝的可移動USB磁盤動態地改變容器中的目錄內容umounting可移動驅動器後保持不變。爲了實現這一點,我做了以下步驟。內容在容器的綁定安裝目錄安裝/從主機
與
-v
選項,它安裝在主機目錄(/mnt
)插入容器(/share
)運行容器。假設新容器的名稱是test。該命令應該看起來像docker run --name test -d -v /mnt:/share ubuntu:latest
。通過
docker exec -it test /usr/bin/bash
檢查內容。目前,/share
爲空。安裝U盤到主機。執行
mount /dev/sdxY /mnt
命令。主機上的/mnt
目錄現在包含存儲在可移動USB磁盤上的文件和目錄。再次檢查內容的容器。容器中的
/share
目錄仍爲空。根本沒有任何改變。
如果我反過來做:1)首先將USB磁盤掛載到主機,2)運行容器,3)卸載USB磁盤。容器中的內容保持不變,但主機上的/mnt
目錄被掃描。
做碼頭工人,有一些機制來保持整個容器的內容同步和主機I加載/卸載磁盤後。
泊塢窗信息:
Containers: 2
Running: 2
Paused: 0
Stopped: 0
Images: 1
Server Version: 17.03.1-ce
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 14
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 4ab9917febca54791c5f071a9d1f404867857fcc
runc version: 54296cf40ad8143b62dbcaa1d90e520a2136ddfe
init version: 949e6fa
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.8.0-46-generic
Operating System: Ubuntu 16.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.684 GiB
Name: tri-xps
ID: LMPY:EGYU:QUAF:DPUF:GZNR:AHFS:URFD:EFW3:5DFV:WHR3:NAYJ:PKQV
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
我試着用'--device'選項但失敗。在將USB電纜插入主機之前,'/ dev'中沒有適當的設備文件,例如'/ dev/sdb'。如果我首先連接USB電纜,然後使用'--device =/dev/sdb1'運行容器,則在從主機斷開USB電纜後,設備仍然存在事件。 –
這篇文章將幫助你http://stackoverflow.com/questions/24225647/docker-any-way-to-give-access-to-host-usb-or-serial-device –
我用'搬運工運行測試 - 它--rm --privileged -v/dev/bus/usb:/ dev/bus/usb ubuntu bash',如果我在容器運行之前將其插入,則無法識別USB閃存驅動程序。 –