Taller Docker
Ronaldo Cárdenas Gómez- T00065214
Paso 1: Instalación de Docker
Usamos VirtualBox para crear una maquina virtual integrada con Ubuntu
Server(versión 20.44 LTS)
Creación de la máquina virtual: BoxLinux
Lo siguiente a hacer seria instalar Docker en nuestra maquina virtual. Para hacer esto, vamos
a valernos de los comandos que nos proporciona la página oficial.
Link oficial: https://docs.docker.com/engine/install/ubuntu/
Comandos:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o
/etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/ ocker.asc
# Add the repository to Apt sources:
echo \
“deb [arch=$(dpkg –print-architecture) signed-
by=/etc/apt/keyrings/ ocker.asc]
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo “$VERSION_CODENAME”) stable” | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Ejecuto estos comandos en la maquina:
Resultado que arrojo:
Ahora, procedemos a instalar la última versión de los paquetes con el comando:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-
compose-plugin
Lo siguiente seria crear un grupo Docker y agregar un usuario. Lo haríamos usando este
comando:
sudo groupadd Docker
En mi caso, sale como resultado eso porque ya se creó.
Ahora, agregamos un usuario al grupo Docker usando este comando: sudo usermod -aG
docker $USER
Como ultimo pasa para validar si Docker esta correctamente instalado, usamos el siguiente
comando: docker –-version.
PASO 2: Hello World
Pero, si queremos tener la plena seguridad de que Docker se instalo perfectamente en
nuestra máquina, basta con ejecutar el contenedor “hello-world”. Para ser eso, vamos a usar
el siguiente comando: docker run hello-world
Ha sido un éxito
PASO 3: Despliegue de una Aplicación Web
Para hacer el despliegue de nuestra pagina web, tenemos que valernos una imagen. En este
caso, voy a usar nginx. Que se instala con el siguiente comando: docker pull nginx
Luego de descargar la imagen, ejecutamos el contenedor con la imagen cargada, con el
siguiente comando: docker run -d -p 8080:80 nginx
-d: Esta flag indica que queremos correr el contenedor en segundo plano.
-p 8080:80: Esto mapea el puerto 8080 de la maquina host al puerto 80 del contenedor.
nginx: El nombre de la imagen.
Resultado
PAGINA:
PASO 4: Personalización de la Aplicación
Primero, creamos un DockerFile para personalizar la imagen de la aplicación Web. El
DockerFile podemos crearlo con un editor de texto. En mi caso, use nano:
DockerFile en nano:
FROM nginx: Utilizamos la imagen base de nginx
COPY ./Prueba/ /usr/share/nginx/html/: Copiamos el archivo HTML personalizado al
directorio de nginx
Mostramos el DockerFile con el comando: nano
Importante aclarar que para esta prueba se uso un archivo HTML personalizado, para probar
la personalización.
Construimos la imagen de Docker. Usemos el siguiente comando: docker build -t image-
docker -f FirstDocker .
Ahora, podemos ejecutar un contenedor con la imagen que acabamos de crear. Usamos
el siguiente comando: docker run -d -p 8080:80 image-docker
Pagina personalizado:
PASO 5: Compartir la Imagen
Nos registramos en Docker Hub
Subimos la imagen personalizada a Docker Hub:
Anotación:
Si necesitamos saber el nombre de nuestras imágenes para ejecutar el comando, escribimos
en la terminal: docker images
Iniciamos sesión en Docker Hub desde la consola: docker login
Finalmente, subimos la imagen etiquetada a Docker Hub: docker push rocar43/image-
docker
Ahora, en una maquina diferente ejecutamos el contenedor usando la imagen subida a
Docker Hub:
Y, efectivamente, funciona:
Estos serían los pasos para seguir.
Bibliografía
https://docs.docker.com/engine/install/ubuntu/
https://docs.docker.com/engine/install/linux-postinstall/
https://lcaballero.wordpress.com/2020/11/26/contenedor-docker-para-servidor-http-nginx/