Respuestas:
La forma específica de ejecutarlo depende de si le dio a la imagen una etiqueta / nombre o no.
$ docker images
REPOSITORY TAG ID CREATED SIZE
ubuntu 12.04 8dbd9e392a96 4 months ago 131.5 MB (virtual 131.5 MB)
Con un nombre (usemos Ubuntu ):
$ docker run -i -t ubuntu:12.04 /bin/bash
Sin un nombre, solo usando la ID:
$ docker run -i -t 8dbd9e392a96 /bin/bash
Consulte la referencia de ejecución de Docker para obtener más información.
docker ps
enumera contenedores, no imágenes. Si desea crear una imagen desde un contenedor, debe hacerlo docker commit
. Puedes usar el NOMBRE en la confirmación (por ejemplo docker commit _NAME_ _imagename_
)
Haz los siguientes pasos:
$ docker images
Obtendrá una lista de todas las imágenes locales de Docker con las etiquetas especificadas.
$ docker run image_name:tag_name
Si no lo especificó tag_name
, se ejecutará automáticamente una imagen con la etiqueta 'más reciente'.
En lugar de image_name
, también puede especificar una ID de imagen (sin nombre de etiqueta).
Para enumerar las imágenes de Docker
$ docker images
Si su aplicación quiere ejecutarse con el puerto 80, y puede exponer un puerto diferente para enlazar localmente, diga 8080:
$ docker run -d --restart=always -p 8080:80 image_name:version
Puedes ver tus imágenes disponibles usando:
docker images
Luego puede ejecutar en modo separado para que su terminal todavía sea utilizable. Tiene varias opciones para ejecutarlo usando un nombre de repositorio (con o sin etiqueta) o ID de imagen:
docker run -d repository
docker run -d repository:tag
docker run -d image_id
Luego puede verificar que su contenedor se esté ejecutando usando
docker ps
docker ps
le da una identificación de contenedor. Puede usarlo o solo los 2/3 primeros caracteres para ingresar a su contenedor usando:
docker exec -it container_id /bin/bash
Y puedes detenerlo usando docker stop container_id
y docker rm container_id
.
También puede ejecutar su contenedor con -rm
argumentos, por lo que si lo detiene, se eliminará automáticamente.
Obtenga el nombre o la identificación de la imagen que desea ejecutar con este comando:
docker images
El comando de ejecución Docker se utiliza de la siguiente manera:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
A continuación, he incluido las opciones de despacho, nombre, publicación, volumen y reinicio antes de especificar el nombre o id de la imagen:
docker run -d --name container-name -p localhost:80:80 -v $HOME/myContainer/configDir:/myImage/configDir --restart=always image-name
Dónde:
--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
Para obtener más información, consulte la referencia oficial de ejecución de Docker .
Aquí hay un ejemplo para ejecutar un servicio webdev en Docker. El nombre de la imagen es morrisjobke / webdav . Puede extraerlo de Docker Hub .
Después de ejecutar estas imágenes, puede acceder a la instancia de WebDAV en http://localhost:8888/webdav
. Internamente, la carpeta /var/webdav
se utiliza como raíz de WebDAV.
Puede ejecutar este contenedor de la siguiente manera:
$ docker run -d -e USERNAME=test -e PASSWORD=test -p 8888:80 morrisjobke/webdav
Yo tuve el mismo problema. Ejecuté mi imagen Docker y creó un contenedor con un CONTAINER_ID específico. Quería trabajar con el mismo contenedor:
Primero ejecute su imagen Docker:
docker run -it -p 8888:8888 -p 6006:6006 -v ~/:/host waleedka/modern-deep-learning
Luego, enumere todos los contenedores que ha hecho:
sudo docker ps -a
Y seleccione el contenedor con el que desea trabajar (el mío es 167ddd6d7f15):
sudo docker start -ai 167ddd6d7f15
Como ha creado una imagen desde el Dockerfile, la imagen actualmente no está en estado activo. Para trabajar, necesita ejecutar esta imagen dentro de un contenedor.
El $ docker images
comando describe cuántas imágenes están disponibles actualmente en el repositorio local. y
docker ps -a
muestra cuántos contenedores están disponibles actualmente, es decir, la lista de contenedores activos y salidos.
Hay dos formas de ejecutar la imagen en el contenedor:
$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
En modo separado:
-d=false: Detached mode: Run container in the background, print new container id
En modo interactivo:
-i :Keep STDIN open even if not attached
Aquí está el comando de ejecución Docker
$ docker run image_name:tag_name
Para obtener más aclaraciones sobre la ejecución de Docker, puede visitar la referencia de ejecución de Docker .
Es el mejor material para entender Docker.
Para ver una lista de todas las imágenes en su host Docker, ejecute:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
apache_snapshot latest 13037686eac3 22 seconds ago 249MB
ubuntu latest 00fd29ccc6f1 3 weeks ago 111MB
Ahora puede ejecutar la imagen de Docker como contenedor en modo interactivo:
$ docker run -it apache_snapshot /bin/bash
O si no tiene ninguna imagen localmente, busque Docker Hub para obtener una imagen para descargar:
$ 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]
Extraiga la imagen de Docker de un repositorio con el comando de extracción de docker:
$ docker pull ubuntu
Ejecute la imagen de Docker como contenedor:
$ 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*
Para aquellos que también tuvieron el mismo problema, pero encontraron un error como
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"
Agregué un punto de entrada que me funcionó:
docker run -it --entrypoint /bin/sh
para las imágenes sin Bash.
Ejemplo (del ejemplo aprobado):
run -it --entrypoint /bin/sh ubuntu:12.04
Referencia: https://gist.github.com/mitchwongho/11266726
docker ps -a
no son útiles aquí?