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 psenumera 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 psle 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_idy docker rm container_id.
También puede ejecutar su contenedor con -rmargumentos, 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/webdavse 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 imagescomando 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 -ano son útiles aquí?