Tecnología de virtualización Docker
Gestión
Hay un docker portainer escuchando en http://brocoli.lechuga.eu:9000
Enlace útiles
https://docker-curriculum.com/
Comandos
Ejecutar un contenedor
Ejecutar un comando dentro de un contenedor (bash para tener un shell)docker exec -it <container id> <comando>
Arrancar un contenedor ya inicializadodocker start <nombre_del_contenedor>
Arrancar un contenedor personal (primera vez, para configurar)
Se descargará si no la tenemos en el repositorio local de imágenes
docker run -d --rm=true --name=metube -v /tmp:/downloads --user="1015:1016" -e TZ=Europe/Madrid -p 8081:8081 alexta69/metube
# -d --> detached
# --rm=true --> Eliminar tras stop o reinicio
# --v ... --> mapeado de directorios
# --user="1015:1016" --> con qué usuario se ejecuta
# -e TZ=Europe/Madrid --> zona horaria
# -p 8081:8081 --> redirección de puertos
# --restart unless-stopped --> reiniciar el contenedor a no ser que se haya parado manualmente
# "alexta69/metube" --> imagen a utilizar
Ejecutar un comando interactivo en un contenedor en marchadocker exec -it metube sh
Detener un contenedor
Graciosamentedocker stop [contenedor]
A lo bestiadocker kill <container id>
Estado del sistema
Procesos en ejecucióndocker ps -a
Eliminar contenedores
Eliminar un contenedor detenidodocker rm <container id>
Eliminar todos los contenedores que han cerradodocker container prune
Eliminar todo
docker rm -f $(docker ps -aq) && docker rmi -f $(docker images -aq)
Gestionar contenedores
Cambiar el nombre a un contenedordocker rename [nombre de contenedor] [nuevo nombre]
Gestionar imágenes
Listar imágenes locales diposniblesdocker images
Importar un contenedordocker pull [nombre de contenedor]
Borrar una imagendocker image rm [nombre de la imagen]
Autoarranque de contenedores (systemd)
Extraido de:
https://mehmandarov.com/start-docker-containers-automatically/
1. Generar un unit de systemd
sudo nano /etc/systemd/system/docker-<nombre_del_contenedor>.service
2. Editar el archivo y usar esto como plantilla:
[Unit] Description=<descripcion_del_contenedor> Requires=docker.service After=docker.service [Service] Restart=always ExecStart=/usr/bin/docker start -a <nombre_del_contenedor> ExecStop=/usr/bin/docker stop -t 2 <nombre_del_contenedor> [Install] WantedBy=local.target