Instalar una imagen:
docker pull [imagen]:(tag)
Tag: Versión, si no se especifica, latest.
Crear un docker si iniciar el docker:
docker create [imagen]:(tag)
Ver imagenes descargadas:
docker images (imagen)
Imagen: Ver solo una imagen específica.
Ver imagenes descargadas:
docker images ls
docker images (imagen)
Imagen: Ver solo una imagen específica.
Eliminar una imagen:
docker image rm (imagen)
Inspeccionar una imagen:
docker image inspect (imagen)
Ver la versión de la aplicación docker:
docker --version
Ver la versión más detallada:
docker version
Ver información del programa:
docker info
Ver los eventos de todos los dockers:
docker events
Ver los registros del docker en tiempo real:
docker logs -f [nombre_docker]
Mirar el contenido de un docker:
docker inspect --format=(formato) [docker]
--format=(formato): Opcional. Ejemplo de formato: "{{.Id}}"
Crear un docker:
docker run [imagen]
Imagen: Si no se descargó previamente, descargará latest.
Iniciar un docker en segundo plano:
docker run -d [imagen]
Persistencia de archivos:
docker run -v [ruta_local]:[ruta_docker]
Así se enlaza una carpeta del docker con una carpeta local para que los archivos no se eliminen al parar el docker.
Modificar una variable de entorno (pej. PUID):
docker run -e [variable_entorno]=[valor]
Especificar el hostname:
docker run -h [hostname]
Iniciar un docker:
docker start [id]
[id]: El identificador asignado al docker.
Parar un docker:
docker stop [id]
Pausar/Des-pausar un docker:
docker pause [id]
docker unpause [id]
Ver los dockers en ejecución:
docker ps
Ver todos los dockers: en ejecución y parados:
docker ps -a
Copiar archivos del host al interior de un docker:
docker cp [docker]:[ruta_docker] [ruta_local]
[docker]:_____________: Nombre del docker específico.
________:[ruta_docker]: Donde se copiará dentro del docker.
[ruta_local]: Ruta del/los archivo/s en la máquina virtual.
Shell:
docker exec -it [id] sh
-i: Modo interactivo.
-t: Da a la terminal una interfaz de línea de comandos.
[id]: El identificador asignado al docker.
sh: Abre una sesión de shell. También puede ser bash u otro.
Asignar un nombre:
docker run --name [nuevo_nombre] [docker]
[docker]: Seleccionar el docker a ejecutar.
Modificar el reinicio:
docker run --restart unless-stopped [docker]
unless-stopped: Ejecutar un docker persistentemente a menos de que se pare manualmente.
Limitar núcleos de la CPU:
docker run --cpus [Cantidad_CPU] [docker]
[CANTIDAD_CPU]: Número (que puede ser decimal) que indica los núcleos máximos para el docker.
docker run --memory [Cantidad_RAM] [docker]
[CANTIDAD_RAM]: Número que indica la cantidad máxima de RAM para el docker. Ej: "512M" (MiB), "1G" (GiB).
Cualquiera de estas opciones se puede modificar más tarde con:
docker update [Parámetros] [docker]
Ver volúmenes:
docker volume ls
Crear volumen:
docker volume create [nombre_volumen]
Eliminar volumen:
docker volume rm [nombre_volumen]
Crear una volumen en el host donde se guardarán los datos del docker:
docker run --mount type=volume,src=[nombre_volumen],dst=[ruta_en_docker] [docker]
Todo lo que se haya en "src" se cargarán en "dst".
Ver las redes y de que tipos son para cada docker:
docker network ls
Puertos:
docker run -p 8089:80 [docker]
Pueden redireccionarse varios puertos a la vez, pero repitiendo "-p".
-p 8089:80: Redirecciona el puerto 8089 del host al 80 del docker.
[docker]: Seleccionar el docker a ejecutar.
docker run -p 127.0.0.2:8089:80 [docker]
-p 127.0.0.2:8089:80: Redirecciona el puerto 8089 de la IP 127.0.0.2 al puerto 80 del docker.
Red host:
docker run --netork host [docker]
No tendrá IP ni mapeo de puertos. Solo es un proceso del host.
Red Bridge:
docker run [docker]
No hace falta especificarlo al ser la elegida por defecto. Tiene IP propia (a partir de la red creada por docker) y permite usar mapeo de puertos. El DNS que tendrá será el utilizado en el host.
Crear una red (tipo bridge u otro):
docker network create --driver (tipo_red) --subnet (ip_red/máscara) --gateway (gateway) [nombre_red]
Driver, Subnet y Gateway son opcionales. Creará una interfaz en el host.
--driver: Puede ser bridge, none, Host, ..
Eliminar una red bridge:
docker network rm [nombre_red]
Cambiar un docker a la nueva red:
docker run --network [nombre_red] [docker]
Añadir una página html:
docker run -p 80:80 -p 443:443 -d httpd
docker exec -it [id] sh
apt update
apt install nano
./htdocs/index.html: Editar el archivo para cambiar la página default.
Acceder a http://{Tu_IP}:{puerto}
Puerto: El que redirige al docker (Especificado al hacer docker run).
Sirve para organizar aplicaciones web en un solo lugar ( localhost:[puerto] ):
docker run --name heimdall -e PUID=1000 -e PGID=1000 -e TZ=america/new_york -p 9998:80 -p 9997:443 -v /home/usuario/Descargas/docker_adr:/config --restart unless-stopped linuxserver/heimdall