2016-05-11 7 views
1

Ich bin neu in Docker und habe gerade angefangen, es zu erkunden. Was ich versuche zu erreichen, ist ein Docker-Image zu veröffentlichen, das nur einige Konfigurationsdateien haben würde. Diese Dateien werden für mehrere Projekte freigegeben.Verwenden von Docker-Image zum Speichern von Dateien

Also das Bild, das ich veröffentlichen möchte, ist 'my-config-image'.


Dies ist, wie die Verzeichnisstruktur ist:

/my-config-settings 
    /folder1/multiple files 
    /folder2/multiple files 
    file1.txt 
    file2.txt 

Nach Online-Lesen und gehen durch die Docker schnellen Start ich ein gewisses Verständnis bekommen haben.

Ich entschied mich, Create ein einfaches Basisbild mit scratch. bezogen von()

So sieht meine Dockerfile aus.

FROM scratch 
ADD folder1/folder2/

Dies ist der Befehl, den ich ein Bild zu veröffentlichen verwenden.

/my-config-settings/docker build -t my-config-image . 
Sending build context to Docker daemon 5.12 kB 
Step 1 : FROM scratch 
---> 
Step 2 : ADD folder1/folder2/
---> Using cache 
---> cc9c3f338f51 
Successfully built cc9c3f338f51 

Wenn ich, wenn das Bild überprüfen möchten lokal erstellt wurde ich es auf diese Weise bin Bestätigung durch

docker images 


REPOSITORY           TAG     IMAGE ID   CREATED    SIZE 
my-config-image          latest    cc9c3f338f51  2 minutes ago  39 B 

Meine Haupt Abfrage ausgeführt wird, wie kann ich überprüfen Sie dies, wenn dies funktioniert, haben auch Fügen Sie file1.txt und file2.txt in das Bild ein, wenn nicht, wie gebe ich an, diese Dateien im Bild hinzuzufügen.

Gibt es eine Möglichkeit, alle Dateien und Verzeichnisse rekursiv in das Bild, das ich erstellen möchte, hinzuzufügen?

Auch wie ich auf dieses Bild zugreifen, bedeutet, wie kann ich überprüfen, ob dieses Bild tatsächlich alle Ordner und Dateien hat. Gibt es eine Möglichkeit, in diese CD einzudringen?

Ich bin mit Vorschlägen einverstanden und schaue auf einen anderen Dockeransatz, wenn das, was ich versuche, keinen Sinn ergibt.

Vielen Dank für das Lesen.

+0

Ich bin ein wenig verwirrt, ehrlich zu sein. Fragen Sie, wie man einen Ordner in einen anderen Ordner legt? Oder fragst du, wie es funktioniert? Beide? Weder? –

+0

Ich versuche, ein Bild mit der gleichen Ordnerstruktur zu erstellen, die ich gezeigt habe. Ich bin nicht sicher, ob der Befehl, den ich verwendete, beide Ordner verweist? Wenn ich einen Ordner in einen anderen Ordner lege, ist mein Befehl ADD folder1/folder2/falsch. Ich versuche das nicht zu erreichen. – Aniks

+0

Wissen Sie, wie man ein Bild erstellt? –

Antwort

1

Sie versuchen, ein Konfigurationsmanagementproblem mit einem Anwendungsmanagementansatz zu lösen. Bei gemeinsamen Konfigurationen möchten Sie im Allgemeinen den "zentralisierten Standortansatz" verwenden. Grundlegende Beispiele hierfür wären ein Git-Repository oder ein S3-Bucket. Beide Lösungen verfügen über einen systemeigenen Dokumentenspeicher und können mit einer fein abgestuften Zugriffssteuerung angemessen zwischen den Diensten ausgetauscht werden.

Ein Docker-Image ist nicht der Docker-Ansatz zum Speichern/Freigeben von Konfigurationen. Durch ein Bild mit, Sie im Grunde zwei Dinge tun:
1. Basis andere Bilder von Ihrer Anfangsbild
2. Führen Sie einen Behälter

Da Ihr Bild hier ist nur Scratch und Dateien gibt es keine ausführbaren Dateien und nichts zu laufen. Das Beispiel hallo world hat ein Verzeichnis mit einem tatsächlichen Skript darin kopiert, weshalb sie mit einem ausführbaren Container gelandet sind.

Als Basis-Image ist die Konfiguration vor Dingen wie Abhängigkeiten nicht sinnvoll.

Wenn Sie wirklich ein Docker Werkzeug dafür verwenden möchten, die Sie suchen Docker Bände. Dies kann ein Dateisystem beibehalten und ist leicht um verschiedene Container herum zu teilen. https://docs.docker.com/engine/userguide/containers/dockervolumes/

+0

Rufgrenze verwenden, leider –

+0

Ich stimme zu, aber das ist nur ein Testbeispiel, das ich versuche für mein eigenes Lernen zu verwenden. Ich möchte dies mit Docker Images erreichen. – Aniks

+0

Docker Bilder sind hier nicht besonders sinnvoll. Ich werde meine Antwort aktualisieren, die beschreibt, warum –