# Listar qué imagenes se tienen en nuestra computadora
docker images
# Listar qué contenedores se se han corrido en nuestra computadora
docker ps -a
# Listar qué contenedores se están ejecutando actualmente
docker ps
# Crear un nuevo contenedor
docker run <imagen>
# Ejecutar un comando dentro de un contenedor que ya está corriendo
docker exec <imagen> <comando>
# Ejecutar un comando en modo interactivo dentro de un contenedor que ya está corriendo
docker exec -it <imagen> <comando>
# Detener un contenedor
docker stop <contenedor>
# Iniciar un contenedor anteriormente creado (Vuelve a jalar la configuración con la que fue creado)
docker start <contenedor>
# Ver que contenedores se ejecutan en background
docker ps
# sudo docker run ubuntu sleep 3
# Ver todos los que contenedores se han ejecutado
docker ps -a
# Listar información a bajo nivel de una imagen
sudo docker run -d ubuntu sleep 60
sudo docker inspect id_image
# Ver imagenes que conforman una capa de docker
docker history ubuntu
# Checar logs de una imagen
docker logs id_image
# Checar los logs de una una imagen y quedarse esperando
docker logs -f id_image
# Descarga una imagen
docker pull hello-world
# Crear un contenedor
docker run hello-world
# Crear un contenedor y eliminarse tras ejecutarse
docker run --rm ubuntu
# Ejecutar un contenedor y asignar un nombre
docker run --name hello_ubuntu ubuntu
# Abrir un contenedor que se ha cerrado
# Obtenemos el ID
docker ps -a
# Inicializamos la imagen
docker start -i <name/id>
# If the container wasn't started with an interactive shell to connect to, you need to do this to run a shell:
docker exec -it <name/id> /bin/sh
# Entrar a un contenedor que está corriendo
docker ps
docker exec -it id_docker /bin/bash
# Detener un contenedor
docker ps
docker stop id_name_contenedor
Es necesario primero "detener" el contenedor
# Borrar contenedor
docker ps -a
docker rm <id_contenedor>
# Borrar todos los contenedores
docker rm $(docker ps -a -q)
Es necesario eliminar los contenedores asociados a esta imagen
# Borrar imagenes
sudo docker rmi <id_imagen>
# Entrar al contenedor en modo interactivo
docker run -it ubuntu
# Entrar al contenedor y ejecutar un comando
sudo docker run ubuntu echo "hello world!"
- Tener el nombre correcto de la imagen
- username/image
# Obtenemos id
docker ps -a
# Cambiar tag // Solo en caso de ser requerido
docker tag id_image username/image:1.0
# Hacer commit de una imagen de docker
docker commit id_image user/image:1.0
# user/image 1.0 6f5e2d0470ef 9 seconds ago 243MB
# Hacer login en docker
docker login --username=user
# Enviar imagen a Dockerhub
docker push username/image:1.0
# Compilar imagen
docker build -t user/image .
docker build -t user/image /path/to/file
# Compilar imagen sin cache
docker build -t user/image:1.0 . --no-cache=true
El cache de Docker es usado para no ejecutar los comandos una vez que estos ya se han ejecutado.
Podria causar problemas en instrucciones como:
# Config inicial
FROM debian
RUN apt-get update
RUN apt-get install -y git
# Config nueva
# cache
FROM debian
# cache
RUN apt-get update
# Estariamos instalando sin antes haber hecho un update, podría descargarse un paquete viejo
RUN apt-get install -y curl git vim
# Posible solución
FROM debian
RUN apt-get update && apt-get install -y \
curl \
git \
vim
# Otra solucion
docker build -t user/image:1.0 . --no-cache=true