Docker¶
Enlaces¶
- Tutorial
- Instalación en Raspberry según uGeek
- Instalación en Ubuntu de versión Community Edition
- JDownloader 2: Download the Internet with Docker!
Instalación¶
Instalación de Docker CE¶
1 2 3 4 5 6 7 8 | |
Hay que reiniciar el sistema para que tenga efecto el último comando que añade el usuario al grupo docker.
Instalación de Docker compose¶
Sustituir la versión por el último tag encontrado en la página de releases del repositorio. En el momento de escribir esto era la v2.17.1.
1 2 3 | |
Instalación Portainer¶
Cerrar y volver a abrir la consola para que se aplique el último cambio del bloque anterior.
-
Crear un directorio para almacenar la configuración:
1$ sudo mkdir /etc/config/portainer -
Ejecutar el comando:
1$ docker run -d --name=Portainer --restart=always -p 9000:9000 -v /etc/config/portainer:/data -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
Comandos¶
List Docker CLI commands¶
1 2 | |
Display Docker version and info¶
1 2 3 | |
Execute Docker image¶
1 2 3 4 | |
List Docker images¶
1 | |
List Docker containers (running, all, all in quiet mode)¶
1 2 3 | |
Varios¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
Diferencias entre create, start, run y exec¶
createse ejecuta sobre una imagen. Crea pero no arranca un contenedor en base a una imagen.runse ejecuta sobre una imagen. Crea y arranca un contenedor en base a una imagen.startse ejecuta sobre un contenedor parado. Arranca el contenedor.execse ejecuta sobre un contenedor arrancado. Ejecuta un proceso en el contenedor.
Algunos ejemplos:
docker create --name test-ubuntu ubuntu: Crea un contenedor con una imagen de ubuntu y la nombratest-ubuntu.docker run -it --name test-ubuntu ubuntu: Crea un contenedor con una imagen de ubuntu, lo nombratest-ubuntuy la arranca en modo interactivo (devuelve prompt).docker run -it --rm --name test-ubuntu ubuntu: Igual que el anterior pero borrando el contenedor al terminar la sesión interactiva.docker start -i test-ubuntu: Arranca el contenedor de nombretest-ubuntuen modo interactivo (devuelve prompt). El contenedor debe existir previamente y debe estar parado.docker exec -it test-ubuntu /bin/bash: Ejecuta el proceso bash en el contenedor de nombretest-ubuntuque debe estar previamente arrancado.
Crear volume para persistir información¶
Para poder recrear el contenedor sin perder la información que haya podido generar, conviene montar los distintos directorios que queremos conservar en volúmenes.
-
Crear volumen:
1$ docker volume create mi_volumen -
Posteriormente incluir en el comando de arranque del contenedor
-v mi_volumen:ruta_en_contenedordonderuta_en_contenedorserá la ruta dentro del contenedor que queremos "delegar" al volumen.
Montar un contenedor Ubuntu para aislar aplicaciones¶
-
Creación contenedor:
1docker run -it --name test-ubuntu ubuntu -
Arrancar y abrir shell:
1 2
docker start test-ubuntu docker exec -it test-ubuntu /bin/bash -
Instalar paquetes mínimos:
1 2
apt-get update apt-get install vim sudo
Crear contenedor y subirlo a Docker Hub¶
- Crear Dockerfile
- Crear repositorio en Docker hub
-
Iniciar sesión en docker
1$ docker login -
Compilar imagen y etiquetarla
1$ docker build -t eduardofilo/rg350_buildroot . -
Subir imagen a repositorio
1$ docker push eduardofilo/rg350_buildroot
Imágenes recomendables¶
phusion/baseimage: Para imágenes basadas en Ubuntu. Documentación- Passenger-docker. Varias imágenes para servidores de aplicación Ruby, Python o NodeJS. Consultar documentación
Distrobox¶
Para encapsular sesiones de terminal en distintas distribuciones de Linux, se puede utilizar distrobox. Utiliza por debajo Docker o podman.
Se puede instalar desde el gestor de paquetes de la mayoría de distribuciones de Linux, aunque también se puede instalar manualmente.
Una vez instalado, para obtener una terminal en una distribución concreta, se puede ejecutar:
1 2 | |
Otros comandos útiles:
distrobox list: Listar las sesiones activas.distrobox stop ubuntu: Parar una sesión.distrobox start ubuntu: Arrancar una sesión.distrobox rm ubuntu: Eliminar una sesión.