2017-11-28 1 views
1

Ich bin neu über Docker, also, wenn irgendwelche falschen Gedanken kommen von mir, bitte darauf hinweisen.Vielen Dank ~Wie kann ich Dateien in einen Andock-Container kopieren, wenn ein Fehler aufgetreten ist: Nosuch container?

Ich bin bestrebt, einen Webserver, der von mir entwickelt wurde, oder ein Team, dem ich angehören, in der Hafenarbeiter.

Also, ich dachte, aus drei Schritten:

ein Bild haben, kopieren Sie die Web-Dateien hinein und die container.so laufen, kann ich den Schritt unter:

1- ein Docker Bild erhalten .

Ich versuche so: docker pull centos, so dass ich ein Bild basierend auf Centos bekommen kann. Hier war mir nicht die Version von Centos, natürlich, es ist Version 6.7 oder, nur taged: neueste.

Hier, überprüfe ich das Bild von docker images, und ich kann es so sehen:

REPOSITORY   TAG     IMAGE ID   CREATED    SIZE 
docker.io/centos latest    d123f4e55e12  3 weeks ago   196.6 MB 

Also, ich denke, dieser Schritt successed.

2- Versuchen Sie, die Dateien im lokalen System in den Container zu kopieren.

ich auf dem Weg zu stoppen:/Tornado, der einen Ordner fordocker .Die

fordocker enthält die Web-Server-Dateien mit dem Namen hatte.

Ich versuche commonds wie folgt aus (basierend auf der Führungs):

docker cp fordocker/ d123f4e55e12:/web 

Aber! Hier kommt der Fehler:

Error response from daemon: No such container: d123f4e55e12 

3-, wenn ich die Dateien erfolgreich kopieren, könnte ich so versuchen: docker run -d centos xxx python web.py.

Dieser Schritt wird kommen Fehler? Ich weiß es noch nicht.

Ich suchte viel, aber nicht das Phänomen erklären.

Es schien, dass jeder, neben mir, den commond verwenden würde Erfolg.

So, hier kommt die Frage:

1- Ist die Methode, die ich durchführbar gedacht? Muss ich ein Bild über ein Profil erstellen?

2- Woher kommt der Fehler, wenn die Methode durchführbar ist? Hat der Commond CP auf anderen Things basiert, die ich nicht gemacht habe?

3- Was soll ich tun, wenn die Methode nicht durchführbar ist Erstellen Sie selbst ein Bild?

Haben Sie einen guten Tag ~

Antwort

3

Sie haben Docker Bilder und Docker-Container. Das ist anders.

Sie ziehen oder erstellen Bilder.

Wenn Sie ein Bild starten, wird es zu einem laufenden Container.

Ein Bild ist kein laufender Container und daher können Sie keine Datei in ein Bild kopieren.

Ich weiß nicht, ob das, was Sie tun möchten, aber Sie können

1) starten ein Bild

docker run ...

2) zu kopieren oder ändern, um eine Datei

docker ps

zeigt Ihren laufenden Container, und so können Sie

docker cp...

eine Datei innerhalb dieser Laufbehälter

3) vielleicht mit

docker commit...

Aber in der Regel diese geänderte Bild speichern, wenn Sie ein Bild ändern möchten, ändern Sie die Dockerfile und so können Sie mit einem solchen Befehl problemlos ein neues Bild erstellen

docker build -t myuser/myimage:321 .

Beachten Sie den letzten Punkt, dh Sie verwenden die lokale Dockerdatei.

Siehe zum Beispiel eine Dockerfile für Nginx

https://github.com/nginxinc/docker-nginx/blob/c8bfb9b5260d4ad308deac5343b73b027f684375/mainline/stretch/Dockerfile

+0

Guten Morgen, Ehre bekommen Ihre Antwort zu Beginn meines Tages. Genau genommen habe ich keine Unterschiede zwischen Bildern und Containern gemacht. Wie zuvor denke ich, Bilder sind der Container im Server, und die Unterschiede von ihnen ist, dass, wenn es in meinem Computer ist. Nach deiner Erklärung habe ich festgestellt, dass ich falsch gedacht habe. Von der Hand möchte ich nur versuchen, ein Python-Web-Projekt von Docker bereitzustellen, teilte der Leitfaden auf zwei Arten.Erste, geboren eine Dcokerfile.Second, ziehen Sie ein Bild und versuchen, es zu ändern und zu speichern. Vielen Dank. – bigpang

0

Ich zielte ein Python-Web-Projekt von Docker bei der Bereitstellung und die erste Methode, die ich daran gedacht ist: copy-Server-Dateien in einen Container und führen Sie es mit python ***.py.

Aber ich habe nicht den Unterschied zwischen Bildern und Container.

Auch habe ich einige andere Methoden:

1- build a Dcokerfile. Auf diese Weise können wir ein Bild mit anderen Commons wie python ***.py ausführen, da wir den Commond in die Dcokerdatei schreiben können.

2- Holen Sie sich ein Bild, das eine richtige Python-Version hat, und versuchen Sie wie docker run -v $PWD/myapp:/usr/src/myapp -w /usr/src/myapp python:3.5 python helloworld.py, aber müssen Sie keine Dateien in den Container kopieren.

Wenn alle Methoden ich beherrschen kann, würde ich wählen, eine Dcokerfile zu erstellen?

+0

https://docs.docker.com/get-started/part2/#build-the-app Ich geboren eine Dcokerfile folgen Sie der Anleitung, und es gelang es. Schönen Tag – bigpang

Verwandte Themen