Odpowiedzi:
Konkretny sposób uruchomienia zależy od tego, czy nadałeś obrazowi tag / nazwę, czy nie.
$ docker images
REPOSITORY TAG ID CREATED SIZE
ubuntu 12.04 8dbd9e392a96 4 months ago 131.5 MB (virtual 131.5 MB)
Z nazwą (użyjmy Ubuntu ):
$ docker run -i -t ubuntu:12.04 /bin/bash
Bez nazwy, wystarczy użyć identyfikatora:
$ docker run -i -t 8dbd9e392a96 /bin/bash
Aby uzyskać więcej informacji, zobacz odniesienie do uruchomienia Docker .
docker ps
wymienia pojemniki, a nie obrazy. Jeśli chcesz utworzyć obraz z kontenera, musisz docker commit
. Możesz użyć NAZWY w zatwierdzeniu (np. docker commit _NAME_ _imagename_
)
Wykonaj następujące czynności:
$ docker images
Otrzymasz listę wszystkich lokalnych obrazów Dockera z określonymi tagami.
$ docker run image_name:tag_name
Jeśli nie określiłeś tag_name
, automatycznie uruchomi obraz ze znacznikiem „najnowszy”.
Zamiast tego image_name
możesz także podać identyfikator obrazu (bez nazwy tagu).
Aby wyświetlić listę obrazów Docker
$ docker images
Jeśli twoja aplikacja chce uruchomić się z portem 80 i możesz udostępnić inny port do lokalnego powiązania, powiedz 8080:
$ docker run -d --restart=always -p 8080:80 image_name:version
Możesz zobaczyć dostępne obrazy, używając:
docker images
Następnie możesz uruchomić w trybie odłączonym, aby twój terminal był nadal użyteczny. Masz kilka opcji, aby uruchomić go przy użyciu nazwy repozytorium (z tagiem lub bez) lub identyfikatora obrazu:
docker run -d repository
docker run -d repository:tag
docker run -d image_id
Następnie możesz sprawdzić, czy Twój kontener działa
docker ps
docker ps
daje identyfikator kontenera. Możesz go użyć lub tylko 2/3 pierwszych znaków, aby przejść do kontenera, używając:
docker exec -it container_id /bin/bash
Możesz zatrzymać to za pomocą docker stop container_id
i docker rm container_id
.
Możesz również uruchomić swój kontener za pomocą -rm
argumentami, więc jeśli go zatrzymasz, zostanie on automatycznie usunięty.
Uzyskaj nazwę lub identyfikator obrazu, który chcesz uruchomić, za pomocą tego polecenia:
docker images
Polecenie uruchomienia Docker jest używane w następujący sposób:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Poniżej podałem opcje wysyłki, nazwy, publikacji, woluminu i restartu przed podaniem nazwy obrazu lub identyfikatora:
docker run -d --name container-name -p localhost:80:80 -v $HOME/myContainer/configDir:/myImage/configDir --restart=always image-name
Gdzie:
--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
Aby uzyskać więcej informacji, sprawdź oficjalną informację o uruchomieniu Docker .
Oto przykład uruchomienia usługi webdev w Docker. Obraz nazywa się morrisjobke / webdav . Możesz go pobrać z Docker Hub .
Po uruchomieniu tych obrazów można uzyskać dostęp do instancji WebDAV pod adresem http://localhost:8888/webdav
. Wewnętrznie folder /var/webdav
jest używany jako katalog główny WebDAV.
Możesz uruchomić ten kontener w następujący sposób:
$ docker run -d -e USERNAME=test -e PASSWORD=test -p 8888:80 morrisjobke/webdav
Miałem ten sam problem. Uruchomiłem obraz Dockera, który utworzył kontener o określonym identyfikatorze CONTAINER_ID. Chciałem pracować z tym samym kontenerem:
Najpierw uruchom obraz Dockera:
docker run -it -p 8888:8888 -p 6006:6006 -v ~/:/host waleedka/modern-deep-learning
Następnie wypisz wszystkie wykonane pojemniki:
sudo docker ps -a
I wybierz pojemnik, z którym chcesz pracować (mój to 167ddd6d7f15):
sudo docker start -ai 167ddd6d7f15
Ponieważ utworzyłeś obraz z pliku Docker, obraz obecnie nie jest w stanie aktywnym. Aby pracować, musisz uruchomić ten obraz w kontenerze.
$ docker images
Komenda opisuje, jak wiele obrazów są obecnie dostępne w lokalnym repozytorium. i
docker ps -a
pokazuje, ile kontenerów jest aktualnie dostępnych, tj. listę aktywnych i opuszczonych kontenerów.
Istnieją dwa sposoby uruchomienia obrazu w kontenerze:
$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
W trybie odłączonym:
-d=false: Detached mode: Run container in the background, print new container id
W trybie interaktywnym:
-i :Keep STDIN open even if not attached
Oto polecenie uruchomienia Docker
$ docker run image_name:tag_name
Aby uzyskać więcej wyjaśnień na temat uruchomienia Docker, odwiedź stronę referencyjną Docker run .
To najlepszy materiał do zrozumienia Dockera.
Aby wyświetlić listę wszystkich obrazów na hoście Docker, uruchom:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
apache_snapshot latest 13037686eac3 22 seconds ago 249MB
ubuntu latest 00fd29ccc6f1 3 weeks ago 111MB
Teraz możesz uruchomić obraz Dockera jako kontener w trybie interaktywnym:
$ docker run -it apache_snapshot /bin/bash
LUB jeśli nie masz żadnych zdjęć lokalnie, wyszukaj w Docker Hub obraz, który chcesz pobrać:
$ docker search ubuntu
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian... 6759 [OK]
dorowu/ubuntu-desktop-lxde-vnc Ubuntu with openss... 141 [OK]
rastasheep/ubuntu-sshd Dockerized SSH ser... 114 [OK]
ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS w... 88 [OK]
ubuntu-upstart Upstart is an even... 80 [OK]
Wyciągnij obraz Docker z repozytorium za pomocą polecenia pull dokera:
$ docker pull ubuntu
Uruchom obraz Dockera jako kontener:
$ docker run -it ubuntu /bin/bash
$ docker images
REPOSITORY TAG IMAGE ID CREATED
jamesmedice/marketplace latest e78c49b5f380 2 days ago
jamesmedice/marketplace v1.0.0 *e78c49b5f380* 2 days ago
$ docker run -p 6001:8585 *e78c49b5f380*
Dla tych, którzy mieli ten sam problem, ale napotkali błąd podobny do
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"bash\": executable file not found in $PATH"
Dodałem punkt wejścia, który został dla mnie opracowany:
docker run -it --entrypoint /bin/sh
dla zdjęć bez Bash.
Przykład (z zatwierdzonego przykładu):
run -it --entrypoint /bin/sh ubuntu:12.04
Odniesienie: https://gist.github.com/mitchwongho/11266726
docker ps -a
nie są tutaj przydatne?