Ausgabe von docker version
:
Client:
Version: 1.11.1
API version: 1.23
Go version: go1.5.4
Git commit: 5604cbe
Built: Wed Apr 27 00:34:20 2016
OS/Arch: linux/amd64
Server:
Version: 1.11.1
API version: 1.23
Go version: go1.5.4
Git commit: 5604cbe
Built: Wed Apr 27 00:34:20 2016
OS/Arch: linux/amd64
Ausgabe von docker info
:
Containers: 1
Running: 1
Paused: 0
Stopped: 0
Images: 21
Server Version: 1.11.1
Storage Driver: overlay
Backing Filesystem: xfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: host bridge null
Kernel Version: 3.10.0-327.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.64 GiB
Name: centos-dev
ID: ACEV:LLBJ:NOYB:VEHF:V3FO:JY3A:5ETY:ETCU:WM3D:DBGZ:YF25:BUTY
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Schritte zum Reproduzieren des Problems:
Beschreiben Sie die Ergebnisse, die Sie erhalten haben:
Beschreiben Sie die erwarteten Ergebnisse:
Ich habe erwartet, dass docker run
das Mounten einer lokalen Datei mit einem relativen Pfad unterstützt.
zugehöriges Problem: https://github.com/docker/docker/issues/22016
@subchen Dies ist ziemlich genau in der Dokumentation angegeben
Das container-dest muss immer ein absoluter Pfad wie /src/docs sein. Die host-src kann entweder ein absoluter Pfad oder ein Namenswert sein . Wenn Sie einen absoluten Pfad für das Host-Verzeichnis angeben, wird Docker an den von Ihnen angegebenen Pfad gebunden. Wenn Sie einen Namen angeben, erstellt Docker ein benanntes Volume mit diesem Namen.
- Docker sieht dies als Namen für ein Volume und erstellt daher das Volume, erstellt einen Ordner dafür und mountet das Volume darin.
- Docker sieht das _immer noch_ als Name für ein Volume, aber
/
ist im Namen eines Volumes nicht erlaubt, und daher schlägt es fehl- Funktioniert wie erwartet :angel:
Der Grund, warum die docker
CLI keinen relativen Pfad verwendet, liegt darin, dass sich der Docker-Client und der Docker-Daemon möglicherweise nicht auf demselben Host befinden. Wie soll also mit dem relativen Pfad umgegangen werden?
Ich werde dies schließen, da es wie beabsichtigt und dokumentiert funktioniert, auch wenn es etwas verwirrend ist. Wenn Sie der Meinung sind, dass die Dokumentation verbessert werden sollte, reichen Sie bitte einen Patch ein!
Sie können -v $PWD/../../path:/location
tun, um einen relativen Pfad indirekt zu verwenden.
@vdemeester @justincormack danke für deine Erklärungen.
-v $PWD/../../path:/location
kann mein Problem lösen.
Hilfreichster Kommentar
Ich werde dies schließen, da es wie beabsichtigt und dokumentiert funktioniert, auch wenn es etwas verwirrend ist. Wenn Sie der Meinung sind, dass die Dokumentation verbessert werden sollte, reichen Sie bitte einen Patch ein!
Sie können
-v $PWD/../../path:/location
tun, um einen relativen Pfad indirekt zu verwenden.