Skip to content

Instantly share code, notes, and snippets.

@mokocchi
Last active June 10, 2021 21:30
Show Gist options
  • Save mokocchi/04c08b4ed9598860dac1c24331046747 to your computer and use it in GitHub Desktop.
Save mokocchi/04c08b4ed9598860dac1c24331046747 to your computer and use it in GitHub Desktop.
Guía básica de comandos de docker

Resumen Docker

Estructura:

docker [categoría] [comando] [parámetros]

Donde algunas categorías posibles son:

  • image
  • container
  • network
  • volume
  • ...

Imágenes

  • 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.

Redes

  • docker network create [nombre-red]: Crea una red entre contenedores con el nombre indicado
  • docker network rm [nombre-red]: Elimina la red indicada
  • docker network inspect [nombre-red]: Inspecciona una red. Muestra las IPs de los contenedores conectados.

Contenedores

  • 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
  • docker container stop [nombre-contenedor]: Detiene un contenedor por su nombre
  • docker container rm [nombre-contenedor]: Borra un contenedor detenido por su nombre
  • docker container start [nombre-contenedor]: reinicia un contenedor detenido (con stop o al apagar el sistema host) por su nombre
  • docker container attach [nombre-contenedor]: se conecta a la salida (STDOUT) de un contenedor por su nombre. Usado en combinación con start.
  • docker container exec -it [nombre-contenedor] [shell]: ejecuta una shell interactiva dentro del contenedor indicado. La shell puede ser bash, sh, o la que esté disponible en la distribución del container.
    • Algunos comandos útiles para usar dentro del container:
      • apk add [paquete] o apt install [paquete]: instalar paquetes faltantes con apk (en contenedores basados en alpine linux) o apt (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 con apk o apt el paquete net-tools
      • ping [IP]: para ver si los otros contenedores son alcanzables. La IP puede ser numérica (buscarla con docker network inspect) o el alias de red del container (si está dentro de un docker-compose)
      • wget [IP:puerto] o curl [IP:puerto]: para ver si ciertos puertos de los otros contenedores son alcanzables
      • nano: editor simple de texto, puede ser útil para editar archivos de configuración. Si no está disponible, instalar con apk o apt,
      • cat: para leer archivos cortos
      • less: 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].

Anexo: Docker Compose

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 en docker-compose.yml
  • docker-compose build: construye todas las imágenes si hay un docker-compose.yml en el directorio
  • docker-compose up [servicio]: crea o reinicia un contenedor de acuerdo a los parámetros de docker-compose.yml. Con -d el servicio pasa a segundo plano y libera la consola.
  • docker-compose up: crea o reinicia todos los contenedores definidos en docker-compose.yml
  • docker-compose stop [servicio]: detiene el servicio indicado.

*La mayoría de los comandos de container e image siguen valiendo para compose

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment