Docker
==================================================================
:sipsonis: Comando útiles de docker
Docker es un proyecto de código abierto que automatiza el despliegue de
aplicaciones dentro de contenedores de software, proporcionando una capa
adicional de abstracción y automatización de virtualización a nivel de sistema
operativo en Linux.
Instalación
-------------------------------------------------------------------
`Instalación en Ubuntu `_
Ejecutar el comando Docker sin sudo
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
De forma predeterminada, el comando docker solamente puede ejecutarse por el
usuario root o por un usuario del grupo docker, el cual se crea
automáticamente durante la instalación de Docker.
Los siguientes pasos son para agregar nuestro usuario al grupo docker.
Crear grupo docker si es que no existe::
$ sudo addgroup docker
Añadir nuestro usuario al grupo::
$ sudo usermod -aG docker ${USER}
Para aplicar la nueva membresía de grupo debe cerrar sesión en el servidor y volver a iniciarla,
o puede escribir lo siguiente::
$ su - ${USER}
Confirmar que se haya agregado su usuario al grupo de docker escribiendo::
$ id -nG
Docker Hub
----------------------------------------------------------------------------------------
Login::
$ docker login
Commitear una imagen::
$ docker commit /:
Subir una imagen::
$ docker push /:
Imágenes
----------------------------------------------------------------------------------------
Crear una imagen a partir de un archivo Dockerfile::
$ docker build -t /: .
Correr una imagen::
$ docker run -it :
$ docker run -it : bash
``it``: Terminal interactiva
Correr una imagen y renombrarla::
$ docker run --name -it :
Renombrar por id::
$ docker
Listar imágenes::
$ docker images
Ver el contenido de una imagen::
$ docker inspect
Borrar imagen por id::
$ docker rmi
$ docker rmi --force
Borrar todas las imágenes::
$ docker image prune
$ docker rmi $(docker images -q)
$ docker image prune -a --filter "until=12h"
Eliminar imagenes colgantes::
$ docker rmi $(docker images --filter dangling=true -q)
Contenedores
----------------------------------------------------------------------------------------
Correr un contenedor interactivo a travez de una terminal::
$ docker run -it
Correr un contenedor asignadole un nombre::
$ docker run -it --name
Correr un contenedor con volúmenes de datos::
$ docker run -v : -it
Correr un contenedor asignándole una red(en este caso la misma que afuera)::
$ docker run --net=host -it
Correr un contenedor y destruirlo luego::
$ docker run --rm -it
Pegarse a un contenedor que corre en background::
$ docker attach
Ingresar dentro de un contenedor::
$ docker exec -it bash
$ docker exec -it /bin/bash
$ docker exec -it sh
Listar contenedores::
$ docker ps -a
Listar los contenedores parados::
$ docker ps -aq
Ver información utíl de un contenedor::
$ docker inspect
$ docker port
Ver la historia de un contenedor::
$ docker history
Parar contenedor::
$ docker stop
Parar todos los contenedores::
$ docker stop $(docker ps -aq)
Borrar contenedor::
$ docker rm
Borrar contenedores parados(similiar a xargs)::
$ docker container prune
$ docker rm $(docker ps -a -q)
$ docker container prune --filter "until=12h"
Copiar archivos hacia el contenedor::
$ docker cp foo.txt mycontainer:/foo.txt
Copiar archivos desde el contenedor::
$ docker cp mycontainer:/foo.txt foo.txt
Redes
----------------------------------------------------------------------------------------
Listar todas las redes::
$ docker network ls
$ docker network ps
Borrar redes una por una::
$ docker network rm
Borrar todas las redes::
$ docker network prune -a --filter "until=12h"
$ docker network prune
Volúmenes
----------------------------------------------------------------------------------------
Crear un volumen::
$ docker volume create
Inspeccionar un volumen::
$ docker inspect
Listar todos los volúmenes::
$ docker volume ls
Borrar volumen colgante::
$ docker volume rm $(docker volume ls --filter dangling=true -q)
Borrar todos los volúmenes::
$ docker volume rm prune
Docker compose
----------------------------------------------------------------------------------------
Construir los servicios::
$ docker-compose -f docker-compose.yml build
Correr servicios::
$ docker-compose -f docker-compose.yml up
Parar los contenedores::
$ docker-compose -f docker-compose.yml stop
Bajar los servicios y remueve los contenedores creados en una ejecución anterior::
$ docker-compose -f docker-compose.yml down --remove-orphans
Correr servicios recontruyendo los servicios::
$ docker-compose -f docker-compose.yml up --build
Listar contenedores que se están ejecutando::
$ docker-compose ps
Para debbugear un servico en específico::
$ docker-compose ps
$ docker stop -f
$ docker-compose run --rm --service-ports
Correr comandos::
$ docker-compose run --rm
Ver lo logs de un contenedor::
$ docker-compose logs
Levantar contenedores sin cache::
$ docker-compose up --force-recreate
Sistema
----------------------------------------------------------------------------------------
Memoría utilizada por docker::
$ docker stats
Extras
----------------------------------------------------------------------------------------
Borrar todo::
$ docker system prune -a -f --volumes