22.1.18

Una lista de comandos comunes en Docker

Docker permite crear paquetes de software autocontenidos conocidos como contenedores. Se puede usar para correr aplicaciones de casi cualquier tipo. Para más información se puede ver la documentación o aprender más con Play with Docker.

-Descargar una imagen: docker pull NAME[:TAG]
Por ejemplo, para descargar la imagen más reciente de Ubuntu
$ docker pull ubuntu

-Iniciar un contenedor: docker run [OPTIONS] IMAGE
Por ejemplo, para iniciar un contenedor nuevo a partir de la imagen de ubuntu
$ docker run ubuntu
Para iniciar un contenedor nuevo a partir de la imagen de Ubuntu y mapear el puerto 8080 del contenedor al puerto 8888 del host
$ docker run -p 8888:8080 ubuntu
Para iniciar un contenedor nuevo a partir de la imagen de Ubuntu y compartir el contenido de la carpeta ˜/Desktop en el host a la carpeta /usr/myFiles en el contenedor (montar volúmenes)
$ docker run -v ˜/Desktop:/usr/myFiles ubuntu

Los comandos que hacen referencia al host y al contenedor lo hacen en el orden HOST:CONTAINER.

-Ver los contenedores creados: docker ps [OPTIONS]
docker ps muestra solo los contenedores que se encuentran corriendo, para ver todos se usa -a
$ docker ps -a

-Iniciar, reiniciar, detener y matar contenedores.
Todos estos comandos necesitan el ID del contenedor o el nombre que se puede obtener con docker ps. No es necesario escribir todo el ID, por lo general con los primeros tres o cuatro caracteres es suficiente mientras estos no coincidan con otro contenedor.
Por ejemplo para iniciar, reiniciar, detener o matar el contenedor con el ID cc114adf4b01
$ docker start cc1
$ docker restart cc1
$ docker stop cc1
$ docker kill cc1


-Ejecutar un comando dentro de un contenedor: docker exec [OPTIONS] CONTAINER COMMAND
Por ejemplo, para crear el archivo myFile.txt dentro del contenedor activo de Ubuntu con el ID cc114adf4b01
$ docker exec -d cc1 touch /myFile.txt
También se puede usar este comando para iniciar una sesión de bash y "acceder" al contenedor
$ docker exec -ti cc1 bash
En este caso se usan las opciones -t -i para mapear los SDTIN y STDOUT del bash en el contenedor a la terminal que se esté usando en el host y para iniciar el modo interactivo, respectivamente. También es posible acceder via SSH, después de todo se comporta casi como una VM (aunque no lo es)

-Ver las imágenes descargadas: docker image ls

Más: Repositorio de imágenes de Docker: Docker Hub. Simplified man pages. Docker run reference. Docker volumes: -v -mount. Cgroups, namespaces, and beyond: what are containers made from?.