Docker einfacher Dateifreigabe-Host <> Docker
Ich bin neu bei Docker. Ich versuche zu erreichen, einen Docker auszuführen und einige Dateien hinzuzufügen. Der Benutzer sollte in der Lage sein, diese Dateien zu ändern und den Docker seine Magie wirken zu lassen. Leistung ist nicht wichtig, aber Einfachheit. Es sollte möglich sein, den Docker ohne weitere Argumente auszuführen, nur "-it". Ich habe versucht, Volumes zu verwenden, aber ...
docker-compose.yml:
version: '3.4'
volumes:
data:
name: templatevolume
services:
template:
image: template
volumes:
- data:/usr/template/:rw
build:
context: .
dockerfile: ./Dockerfile
... das Volume wird erstellt, aber nicht dem Docker zugewiesen. Gibt es einen besseren Weg? Muss ich dem Docker das Volume im Befehl run zuweisen? Bitte beraten.
Dockerfile:
FROM fedora:latest
LABEL Name=template Version=0.0.1
...
Es ist eine lange Docker-Datei, aber ich mache hier nichts mit Volumes und nichts Besonderes, sondern installiere nur Pakete.
Antworten
Sie können Bindungs-Mounts verwenden. Sie werden ein Verzeichnis Ihrer physischen Maschine in Ihren Docker-Container einbinden.
Für ein solches Volume müssen Sie die Quelle des Mount angeben. Dies ist der Pfad zu der Datei oder dem Verzeichnis auf dem Docker-Daemon-Host (Ihrem Computer) und das Ziel . Dies ist der Pfad, unter dem die Datei oder das Verzeichnis im Container (innerhalb des Mount) bereitgestellt wird Container).
- "source:target"
Sie müssen überhaupt keine Docker-Volumes erstellen.
Erstellen wir ein verstecktes Verzeichnis .data im Verzeichnis Ihrer Docker-Compose-XML-Datei
$ mkdir .data
Sie docker-compose Datei jetzt:
version: '3.4'
services:
template:
image: template
volumes:
- data:/usr/template/:rw
- "./.data:/usr/template/"
build:
context: .
dockerfile: ./Dockerfile
Das ist es. Ein Benutzer kann auf die Dateien in .data zugreifen, und Docker kann dort auch mit allen Inhalten arbeiten.