Estructura:
docker [categoría] [comando] [parámetros]
Donde algunas categorías posibles son:
- image
- container
- network
- volume
- ...
docker image build -t [tag] [directorio]
: Construye una imagen con el tag y el directorio indicados. El directorio suele ser el actual, o sea un punto (.).docker image rm [tag]
: Borra una imagen con el tag indicado (si no hay contenedores que dependan de ella)docker image prune
: Borra todas las imágenes que no tienen contenedores asociados. Recupera espacio en disco pero puede requerir reconstruir imágenes. USAR CON CUIDADO.
docker network create [nombre-red]
: Crea una red entre contenedores con el nombre indicadodocker network rm [nombre-red]
: Elimina la red indicadadocker network inspect [nombre-red]
: Inspecciona una red. Muestra las IPs de los contenedores conectados.
docker container run [parámetros] [tag-imagen]
: Crea e inicia un contenedor NUEVO con los parámetros indicados a partir de la imagen indicada.- Algunos parámetros:
--name [nombre-contenedor]
: nombre que tomará el contenedor-p [PUERTO_HOST:PUERTO_CONTAINER]
: puerto a exponer hacia la máquina host--network [nombre-red]
: red a la que se conectará el contenedor. Tiene que estar creada de antemano.-e VARIABLE=VALOR
: asigna variables de entorno--env-file ARCHIVO
: ídem anterior, pero con un archivo .env
- Algunos parámetros:
docker container stop [nombre-contenedor]
: Detiene un contenedor por su nombredocker container rm [nombre-contenedor]
: Borra un contenedor detenido por su nombredocker container start [nombre-contenedor]
: reinicia un contenedor detenido (con stop o al apagar el sistema host) por su nombredocker container attach [nombre-contenedor]
: se conecta a la salida (STDOUT) de un contenedor por su nombre. Usado en combinación constart
.docker container exec -it [nombre-contenedor] [shell]
: ejecuta una shell interactiva dentro del contenedor indicado. La shell puede serbash
,sh
, o la que esté disponible en la distribución del container.- Algunos comandos útiles para usar dentro del container:
apk add [paquete]
oapt install [paquete]
: instalar paquetes faltantes conapk
(en contenedores basados en alpine linux) oapt
(en algunas otras distribuciones)netstat -ntlp
: para listar en forma numérica(n) los puertos tcp(t) abiertos(l) junto con el programa(p) que está corriendo. Si no está instalado, instalar conapk
oapt
el paquetenet-tools
ping [IP]
: para ver si los otros contenedores son alcanzables. La IP puede ser numérica (buscarla condocker network inspect
) o el alias de red del container (si está dentro de un docker-compose)wget [IP:puerto]
ocurl [IP:puerto]
: para ver si ciertos puertos de los otros contenedores son alcanzablesnano
: editor simple de texto, puede ser útil para editar archivos de configuración. Si no está disponible, instalar conapk
oapt
,cat
: para leer archivos cortosless
: lector paginado de archivos (no siempre está disponible)grep -i [expresion]
: para buscar dentro de texto. Uso típico:cat [archivo] | grep -i [patrón]
.
- Algunos comandos útiles para usar dentro del container:
Con Docker Compose se pueden organizar grupos de contenedores. Algunos comandos útiles:
docker-compose build [servicio]
: (re)construir la imagen de un contenedor a partir de su nombre endocker-compose.yml
docker-compose build
: construye todas las imágenes si hay undocker-compose.yml
en el directoriodocker-compose up [servicio]
: crea o reinicia un contenedor de acuerdo a los parámetros dedocker-compose.yml
. Con-d
el servicio pasa a segundo plano y libera la consola.docker-compose up
: crea o reinicia todos los contenedores definidos endocker-compose.yml
docker-compose stop [servicio]
: detiene el servicio indicado.
*La mayoría de los comandos de container
e image
siguen valiendo para compose