Cómo instalar Docker en Linux Ubuntu (proceso idéntico para otras distribuciones de Linux como Debian) y cómo descargar, desplegar y ejecutar la imagen «hello-word» de pruebas. Mostramos los contenedores en ejecución, los detenemos y los eliminamos. Ejecutamos un contenedor de un sitio web estático simple para mostrar el «mapeo» de puertos de Docker.
- Qué es Docker.
- Instalar Docker en Linux Ubuntu.
- Ejecutando imagen «Hola mundo» en Docker para verificar que se ha instalado correctamente.
- Ejecutar imagen de sitio web estático en Docker y acceso externo.
- Listar, detener y eliminar contenedores iniciados en Docker.
Qué es Docker
Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software. Proporciona una capa adicional de abstracción y automatización de virtualización de aplicaciones en múltiples sistemas operativos.
Docker utiliza características de aislamiento de recursos del kernel Linux, tales como cgroups y espacios de nombres (namespaces) para permitir que los contenedores independientes se ejecuten dentro de una sola instancia de Linux, evitando la sobrecarga de iniciar y mantener máquinas virtuales.
Docker es una herramienta que puede empaquetar una aplicación y sus dependencias en un contenedor virtual que se puede ejecutar en cualquier servidor Linux. Esto ayuda a permitir la flexibilidad y portabilidad en donde la aplicación se puede ejecutar, ya sea en las instalaciones físicas, la nube pública, nube privada, etc.
Instalar Docker en Linux Ubuntu
En primer lugar ejecutaremos el siguiente comando para actualizar la lista de paquetes disponibles y sus versiones en Linux Debian:
sudo apt-get updateEjecutaremos el siguiente comando para instalar los paquetes dependientes que necesitará Docker:
sudo apt-get install
ca-certificates
curl
gnupg
lsb-release
Agregaremos las GPG key de Docker:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgAgregamos un repositorio estable (stable) de Docker con el comando:
echo
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Volvemos a ejecutar el siguiente comando para actualizar versiones de paquetes, es necesario volver a ejecutarlo para que se agreguen y actualicen los nuevos paquetes del repositorio de Docker agregado anteriormente:
apt-get updateInstalamos Docker con el comando:
apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Se iniciará la instalación de Docker:

Ejecutando imagen «Hola mundo» en Docker para verificar que se ha instalado correctamente
Ejecutaremos el siguiente comando, que la primera vez que lo ejecutamos detectará que la imagen «hello-world» no está instalada en Docker, por lo que la descargará y desplegará. Tras descargarla y desplegarla la ejecutará:
sudo docker run hello-worldSi lo volvemos a ejecutar una segunda vez, ejecutará la imagen directamente dado que ya está descargada y desplegada:

Nos mostrará el siguiente texto, indicando que en la primera ejecución no lo encuentra y lo descarga e instala y ejecuta. En la segunda ejecución, como ya está instalado, sólo lo ejecuta:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:80f31da1ac7b312ba29d65080fddf797dd76acfb870e677f390d5acba9741b17
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/Ejecutar imagen de sitio web estático en Docker y acceso externo
Ejecutaremos el siguiente comando para instalar la imagen «static-site», que como siempre en Docker, si no la encuentra en local la descargará e instalará:
sudo docker run --name static-site -e AUTHOR="ProyectoA" -d -P dockersamples/static-siteEn el caso de la imagen «static-site», necesita ejecutarse en modo separado, por ello hemos usado el comando -d. Este es un requisito de esta imagen de ejemplo.
Para ver los puertos levantados al levantar esta imagen, ejecutaremos el comando:
sudo docker port static-siteQue nos devuelve:
443/tcp -> 0.0.0.0:49157
443/tcp -> :::49157
80/tcp -> 0.0.0.0:49158
80/tcp -> :::49158
Por lo tanto ya tenemos iniciado el contenedor de sitio web estático en local, si queremos acceder desde local podemos ejecutar el comando:
curl localhost:49158El puerto 49158 es el que el Docker ha asignado al equivalente al 80 en el contenedor del static-site.
Nos devolverá el contenido del fichero index del sitio web estático del contenedor del Docker:

Si queremos acceder al servidor web del contenedor del Docker desde un equipo externo, podemos ejecutar el contenedor con este comando, para mapear los puertos:
sudo docker run --name static-site -e AUTHOR="ProyectoA" -d -p 8888:80 dockersamples/static-siteEl comando anterior supone que no existe la imagen «static-site», en caso de existir en Docker, renombraremos la imagen a ejecutar, por ejemplo a static-site-2.
Listar, detener y eliminar contenedores iniciados en Docker
Para mostrar un listado de todos los contenedores iniciados en Docker ejecutaremos el comando:
sudo docker psQue nos devolverá algo así:

En nuestro entorno de Docker, tenemos en ejecución el contenedor con ID 9f6a36b477d4. Si queremos detenerlo ejecutaremos el comando:
sudo docker stop 9f6a36b477d4Y si queremos eliminarlo completamente ejecutaremos:
sudo docker rm 9f6a36b477d4