Ich habe ein Docker-Image aus einer Docker-Datei erstellt. Ich sehe, dass das Image erfolgreich erstellt wurde, aber was mache ich damit? Sollte es nicht als Container laufen können?
Neu für Docker, also wahrscheinlich ein Missverständnis für mich. Jede Hilfe wäre großartig.
Die genaue Art der Ausführung hängt davon ab, ob Sie dem Bild einen Tag/Namen gegeben haben oder nicht.
$ docker images
[email protected]:~# docker images
REPOSITORY TAG ID CREATED SIZE
ubuntu 12.04 8dbd9e392a96 4 months ago 131.5 MB (virtual 131.5 MB)
Mit einem Namen (verwenden wir ubuntu ):
$ docker run -i -t ubuntu:12.04 /bin/bash
Ohne Namen nur mit der ID:
$ docker run -i -t 8dbd9e392a96 /bin/bash
Weitere Informationen finden Sie unter https://docs.docker.com/engine/reference/run/ .
Führen Sie folgende Schritte aus:
$ docker images
sie erhalten eine Liste aller lokalen Docker-Bilder mit den angegebenen Tags.
$ docker run image_name:tag_name
Wenn Sie tag_name
nicht angegeben haben, wird das Bild automatisch mit dem 'neuesten' Tag ausgeführt.
Anstelle von image_name
können Sie auch die Image-ID (kein Tag-Name) angeben.
$ docker images
$ docker run -d --restart=always -p 8080:80 image_name:version
Mit können Sie Ihre verfügbaren Bilder anzeigen
docker images
Sie können dann im getrennten Modus ausgeführt werden, sodass Ihr Terminal weiterhin verwendet werden kann. Sie haben mehrere Optionen, um es unter Verwendung des Repository-Namens (mit oder ohne Tag) oder der Image-ID auszuführen
docker run -d repository
docker run -d repository:tag
docker run -d image_id
Dann können Sie überprüfen, ob Ihr Container mit ausgeführt wird
docker ps
docker ps gibt Ihnen eine Container-ID, die Sie verwenden können, oder nur das Zeichen 2/3 firsts, um mit in Ihren Container zu gelangen
docker exec -it container_id /bin/bash
und Sie können es mit docker stop container_id
und docker rm container_id
stoppen
Sie können Ihren Container auch mit -rm
Argumenten ausführen. Wenn Sie also Ihren Container anhalten, wird er automatisch entfernt.
Rufen Sie mit dem folgenden Befehl den Namen oder die ID des Bildes ab, das Sie ausführen möchten: docker images
Der docker run-Befehl wird folgendermaßen verwendet:
docker run [OPTIONS] IMAGE [COMMAND] [ARG ...]
Im Folgenden habe ich die Optionen für Versand, Name, Veröffentlichung, Volume und Neustart angegeben, bevor der Image-Name oder die ID angegeben wurden:
_docker run -d --name container-name -p localhost:80:80 -v $HOME/myContainer/configDir:/myImage/configDir --restart=always image-name
_
--detach , -d Run container in background and print container ID --name Assign a name to the container --publish , -p Publish a container’s port(s) to the Host --volume , -v Bind mount a volume --restart Restart policy to apply when a container exits
Weitere Informationen finden Sie in der offiziellen Docker Run-Referenz
Hier ist ein Beispiel für die Ausführung eines Webdev-Dienstes im Docker.
Das Bild heißt morrisjobke/webdav. Sie können es von Dockerhub ziehen.
Nachdem Sie diese Bilder ausgeführt haben, können Sie unter http://localhost:8888/webdav
auf die WebDAV-Instanz zugreifen. Intern wird der Ordner /var/webdav
als WebDAV-Root verwendet.
Sie können diesen Container folgendermaßen ausführen: $ docker run -d -e USERNAME=test -e PASSWORD=test -p 8888:80 morrisjobke/webdav
Da Sie ein Bild aus der Docker-Datei erstellt haben, befindet sich das Bild derzeit nicht im aktiven Zustand. Um zu arbeiten, müssen Sie dieses Image in einem Container ausführen.
Der Befehl $ docker images
beschreibt, wie viele Bilder derzeit im lokalen Repository verfügbar sind. und
docker ps -a
zeigt an, wie viele Container aktuell verfügbar sind, d. h. die Liste der aktiven und verlassenen Container
Es gibt zwei Möglichkeiten, das Bild im Container auszuführen
$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
im getrennten Modus
-d=false: Detached mode: Run container in the background, print new container id
im interaktiven Modus
-i :Keep STDIN open even if not attached
Hier ist der Docker-Befehl run
$ docker run image_name:tag_name
weitere Informationen zur Docker-Ausführung finden Sie unter https://docs.docker.com/engine/reference/run/
es ist das beste Material, um Docker zu verstehen.
Ich hatte das gleiche problem Ich habe meinen Docker ausgeführt und einen Container mit einer bestimmten CONTAINER_ID erstellt und wollte mit demselben Container arbeiten:
führen Sie zuerst Ihren Docker aus:
$ docker run -it -p 8888: 8888 -p 6006: 6006 -v ~ /:/Host waleedka/modern-deep-learning
Listen Sie dann alle Container auf, die Sie erstellt haben:
$ Sudo docker ps -a
und wähle den Container aus, mit dem du arbeiten möchtest (meins ist 167ddd6d7f15)
$ Sudo docker start -ai 167ddd6d7f15