meta data de esta página
Comandos para Docker
Comandos de información
1 |
docker info |
1 |
docker version |
Gestión de imágenes
Buscar una imagen
Para buscar una imagen usamos docker search <imagen_a_buscar>, por ejemplo
1 |
docker search centos |
Listar las imágenes que tenemos descargadas
1 |
sudo docker images ls |
Obtener información sobre una imagen concreta
1 |
sudo docker history <imagen> |
Descargar una imagen
1 |
sudo docker pull <nombreimagen |
Por ejemplo para descargar la imagen de kali linux
1 |
sudo docker pull kalilinux/kali-linux-docker |
Obtener detealles sobre una imagen
1 |
docker inspect <imagen> |
Borrar una imagen
1 |
docker image rm |
1 |
docker rmi |
Gestión de Contenedores
Crear un contenedor
1 |
docker create --name <nombre> <imagen> |
1 |
create --name mihola holamundo |
Arrancar un Contendor
1 |
sudo docker run -opciones nombre_imagen o codigo_imagen |
1 |
sudo docker run -t -i kalilinux/kali-linux-docker /bin/bash |
Por defecto docker usa nombre de contenedores aleatorios, si queremos que nuestro contenedor tenga un nombre determinado haremos
1 |
docker run --name <nombreimagen> |
Arrancar un contenedor mapeando puertos
1 |
docker run -p <puerto host>:<puerto contenedor> <imagen> |
Por ejemplo para exponer los puerto de un contenedor con ngnix
1 |
docker run -p 80:80 -p 443:443 nginx:latest |
1 |
docker run -P --name micontenedor miimagen:latest |
Ver los contenedores disponibles
Para que nos muestre los contenedores en ejecución
1 |
docker ps |
1 |
docker ps -a |
- CONTAINER ID = Identificador único del contenedor
- IMAGE = La imagen utilizado para la creación del contenedor
- COMMAND = Comando ejecutado en el momento de crear el contenedor
- CREATED = Muestra el tiempo de vida que tiene el contenedor
- STATUS = Muestra el estado actual del contenedor
- PORTS = Muestra el puerto que la aplicación dentro del contenedor utiliza para recibir conexiones
- NAMES = Nombre del contenedor
Acceder a un contenedor
Para acceder al contenedor, además de crearlo, se puede hacer de dos maneras. Una es haciendo referencia al IMAGE ID y otra al repositorio (REPOSITORY) y la etiqueta (TAG).
1 |
docker run -i -t b72879fa579a /bin/bash |
O también:
1 |
docker run -i -t ubuntu:14.04 /bin/bash |
Borrar contenedores sin uso
con el comando
1 |
docker system prune |
- los contenedores que no se usan
- los volúmenes que no se usan
- las imágenes que no se están usando
- las redes que no se están usando
Etiquetar
También podemos poner una etiqueta a nuestros contenedores, y llamarlo por dicha etiqueta, lo cual nos permitirá organizar mejor todos nuestros contenedores. Para poner una etiqueta
1 |
docker tag id_imagen repositorio:etiqueta |
Para llamar a dicho contenedor por la etiqueta, hacemos lo mismo que cuando lo llamamos por el id pero poniendo ahora la etiqueta
1 |
docker tun -i -t repositorio:etiqueta /bin/bash |
Es habitual por ejemplo a una imagen que tengamos creada ponerle una etiqueta de latest para indicar que es la última versión disponible
1 |
docker tag miimagen:version miimagen:latest |
Iniciar contenedor
1 |
docker start imagenid |
1 |
docker start nombre |
1 |
docker attach id |
Parar contenedor
Para parar un contenedor
1 |
docker stop imagenid_o nombre |
Para parar todos los contenedores
1 |
docker stop $(docker ps -a -q) |
Salir
Escribiendo exit en nuestro contenedor, o Pulsando CTRL+D salimos del mismo pero parando la ejecución del mismo. Si queremos salir del contenedor pero que se siga ejecutando debemos presionar CTRL, después P y luego Q
Guardar Contenedor
Las imágenes son plantillas de sólo lectura, que usamos de base para lanzar contenedores. Por tanto todo lo que hagamos en el contenedor sólo persiste en ese contenedor y NO se guardan en la imagen.
Si queremos que dichos cambios sean permanentes, debemos crear una nueva imagen con el contenedor personalizado.
1 |
docker commit -m "comentario" -a "autor" <identificadordelcontenedor> nuevonombreimagen |
Por ejemplo
1 |
docker commit -m "Imagen actualizada centos" -a "LC" c605d57c9aa1 centosactualizado:v1 |
Con commit creamos una nueva imagen en nuestro repositorio local.
Borrar Contenedor
1 |
docker rm <contenedor> |
Para borrar todos los contenedores
1 |
docker rm $(docker ps -a -q) |
Probar
1 |
docker container rm $(docker container ls -a -q) |
Copiar desde un contenedor
Para copiar un fichero desde un contenedor a nuestra máquina hacemos
1 |
docker cp <nombre_contenedor o id>:<ruta_al_fichero> <directorio_local_a_donde_copiar> |
También podemos hacerlo a la inversa. Desde la máquina local al contenedor
Ejecutar comando
Podemos ejecutar un comando dentro de un contenedor con
1 |
docker exec <nombre o id contenedor> <comando> |
Por ejemplo para iniciar un shell intereactivo
1 |
docker exec -it micontenedor sh |
También
1 |
docker exec -it micontenedor bash |
Para sar un listado de los procesos que corren en el contenedor
1 |
docker exec micontenedor ps |
BACKGROUND
Con la opción -d Nos permite ejecutar un contenedor en segundo plano y poder correr comandos sobre el mismo en cualquier momento mientras esté en ejecución. Se dice que es un contenedor demonizado y se ejecutará indefinidamente
por ejemplo
1 |
docker run -d --name tomcat:v8 miimagentomcat |
logs
Para ver los logs que está generando un contenedor, ejecutaríamos el comando
1 |
docker logs <nombre contenedor o id> |
Estadísticas de uso
con el comando stats obtenemos estadísticas de uso y consumo de nuestro contenedor
1 |
docker stats <nombre contenedor o id> |