Instalación
Instalar paquetes necesarios
apt -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common
Añadir la key del repositorio
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
Añadir el repositorio
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
Actualizar los repositorios
apt update
Instalar docker
apt -y install docker-ce
Añadir al usuario al grupo de docker
usermod -aG docker $USER
Activar cambios de grupos
$ newgrp docker
Configuración
Info
Ver la información de docker
docker info
Server Version: 17.03.1-ce
Imagenes
Para buscar imágenes de docker utilizar:
docker search <docker-image>
Descargar una imagen de docker
docker pull <docker_image>
Ver todas las imágenes descargadas
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE berngp/docker-zabbix latest f07539f0c54f 3 weeks ago 1 GB
Borrar imagenes
docker rmi <docker_image>
Crear contenedor
Crear un contenedor nuevo (no es necesario tener descargada la imagen de antes. Si no lo está la descargará automáticamente.)
docker run -d --name <nombre_contenedor> -p <puerto_host>:<puerto_docker> -v <host_volume>:<docker_volume> <docker_image>
Ejemplo:
Vamos a levantar un apache. Para esto, necesitamos que escuche en el puerto 80 y que el volumen donde se almacenan los sites esté en nuestro host.
docker run -d --name apache-ichasco --restart=always -v /srv/apache-ichasco/html:/var/www/html -p 80:80 eboraas/apache-php
-d: iniciar en docker en modo demonio --name: nombre del contenedor --restart=always: para reiniciarlo automáticamente si falla -v: relacionar volumenes del docker con los del host -p: relacionar puertos
En este caso, tendríamos que crear todos los sites en el /srv/apache-ichasco/html de nuestro host (no del docker)
Logs
Ver los logs
docker logs <nombre_contenedor>
Ver logs en caliente
docker logs -f <nombre_contenedor>
Conectarse a un contenedor
docker exec -i -t <nombre_contenedor> /bin/bash
Iniciar un contenedor
docker start <nombre_contenedor>
Parar un contenedor
docker stop <nombre_contenedor>
Eliminar un contenedor
docker rm <nombre_contenedor>
Guardar los commits creados
docker commit <nombre_contenedor> <docker_image>
Dockers creados
Ver el listado de contenedores creados
docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 514106b988c0 eboraas/apache-php "/usr/sbin/apache2..." 2 seconds ago Up 1 second 0.0.0.0:80->80/tcp, 443/tcp apache-ichasco
Eliminar todos los dockers
Borrar todos los contenedores creados
docker rm -f $(docker ps -aq)
Borrar todas las configuraciones de docker
docker system prune
Exportar/importar
Exportar un docker a tar
docker export <nombre_contenedor> -o <nombre_contenedor.tar
Importar un docker
docker import <nombre_contenedor>.tar
Monitorización
Memoria, CPU, Networks… en vivo
docker stats
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS a0c841397962 0.16% 0 B / 0 B 0.00% 2.74 MB / 5.32 MB 52.2 MB / 24.6 kB 0 6ec73a569e6e 0.17% 0 B / 0 B 0.00% 4.76 MB / 2.72 MB 9.68 MB / 533 MB 0
Procesos de un docker
docker top <nombre_contenedor>
Ref:
http://rm-rf.es/como-instalar-configurar-usar-docker-linux-containers/
Also published on Medium.
6 comments