Subido por von pereira ospina

Tarea desarrollo Docker contenedores 2910243 Bartolomé Antonio Pereira Ospina

Anuncio
Tarea desarrollo Docker contenedores 2910243 Bartolomé Antonio Pereira Ospina
Profesora: Mercedes Patricia Paredes
Una vez adquirido los conocimientos en Contenedores DOCKER, vamos a seguir el paso a paso del
presente explicativo con la finalidad de construir un entorno de desarrollo.
Una de las características principales de esta temática es su portabilidad, el cual, permitirá diseñar
de manera ágil contenedores, dando respuesta a los requerimientos solicitados.
Lo primero que realizaremos es: - Visitar la página de Docker que es la siguiente
https://www.docker.com/ y se procede a entrar al apartado para la descarga del aplicativo para
Windows.
Instalamos Docker desktop
Por último habilitamos SVM -virtualización segura
Y … montó Docker desktop
Entramos dockerhub
Así luce el repositorio de Docker, ahí se podrá encontrar todas las imágenes que se creen y
también se podrá acceder a las imágenes públicas, donde existen muchas de sitios oficiales.
Para trabajar con Dockerse utilizara el cmd de Windows y para ello se oprime en el teclado las
teclas Windows +R y se escribe cmd.
Se carga la línea de comandos de Windows y se digita el comando Docker versión para asegurar de
que la aplicación está bien instalada.
. Cuando se habla de un hello-world en Docker hablamos de la descarga de una imagen y crea un
contenedor para mostrar un mensaje de hello-world.
Todo comando para trabajar con Docker lleva la palabra reservada “Docker” y luego se utiliza
algunas banderas para dar una instrucción, entonces para ejecutar un hello-world se escribe en la
terminal de comandos docker run hello-world en donde run es un comando que permite ejecutar
un contenedor.
Para trabajar con algunos comandos básicos de imágenes y contenedores y como se tiene ya la
imagen descargada de hello-world se digita en el cmd el siguiente comando “docker image ls“ en
donde se indica que se quiere ver el listado de imágenes guardadas.
En la respuesta que se obtiene muestra el nombre del repositorio hello-world, el image ID es muy
importante, la fecha de creación y el tamaño de la imagen, también se puede digitar el comando
para ver contenedores de la siguiente manera docker ps.
Cuando se ejecuta, no sale absolutamente nada de “hello world” porque el script de hello -world se
ejecuta y lo termina automáticamente, si se digita el comando docker ps –a que arroja lo
siguiente.
Muestra todos los contenedores que hay disponibles y no necesariamente se están ejecutando en
ese momento, muestra el ID del contenedor y referencia la imagen hello-world que se usó para
montar ese contenedor, también se observa que fue creado hace 4 min y término también hace 4
min.
Dockerfile
El Dockerfile es un template o por así llamarlo la receta que tiene que seguir Docker y una serie de
comandos, y de esas líneas depende el contenedor, si se abre el enlace de dockerfile.build se
observa unas líneas interesantes.
Como crear una imagen y generar un contenedor
Un contenedor es el producto de ejecutar una imagen, una imagen contiene archivos que
desencadena un resultado objetivo, partiendo de ese principio se va a necesitar un template para
crear una nueva imagen y de ahí un contenedor propio.
Para llevar a cabo este ejemplo de cómo construir una imagen y generar un entorno de desarrollo,
se seguirá las instrucciones que están en la página de Docker y así ejemplarizar con un
administrador de lista de tareas simple que se ejecuta en Node.js
A partir de este punto se desarrollaran los ejercicios propuestos por Docker y así generar un
entorno de desarrollo en java, para empezar con el ejercicio se descarga el contenido en un
archivo .zip https://github.com/docker/getting-started/tree/master/app el cual contiene la
aplicación, por eso para este ejemplo no es necesario manejar java.
Para poder trabajar este ejemplo se recomienda un editor de código, ejemplo, Visual Studio Code,
se puede descargar de la página oficial gratuitamente.
Crear la imagen del contenedor de la aplicación
Para construir la aplicación, se necesita usar un Dockerfile.
Un Dockerfile es simplemente un script de instrucciones basado en texto que se utiliza para crear
una imagen de contenedor.
Cree un archivo con el nombre Dockerfile en la misma carpeta que se encuentra el archivo
package.json con el siguiente contenido.
# syntax=docker/dockerfile:1
FROM node:18-alpine
RUN apk add --no-cache python3 g++ make
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
Comprobar que el archivo Dockerfile no tenga una extensión como .txt algunos editores pueden
agregar esta extensión de archivo automáticamente y esto daría como resultado un error.
Se ejecuta el cmd de windows y se procede a ubicar el directorio app donde se encuentra el
Dockerfile, una vez ubicado en el directorio se construye la imagen del contenedor usando el
comando docker build.
docker build -t getting-started .
Este comando usó el Dockerfile para crear una nueva imagen de contenedor. Es posible que se
haya notado que se descargaron muchas "capas". Esto se debe a que se indicó al constructor que
se uería comenzar desde la node:18-alpine imagen. Pero, como no se tenía eso en nuestra
máquina, era necesario descargar la imagen.
Después de descargar la imagen, se copia en la aplicación y se usa yarn para instalar las
dependencias de la aplicación.
Finalmente, la bandera –t etiqueta la imagen, como se nombró la imagen getting-started, se debe
hacer referencia a esa imagen cuando se ejecute un contenedor.
En la parte final del comando docker build indica que Docker debe buscar Dockerfile en el
directorio actual.(ver punto al final del comando)
Después de haber realizado los pasos anteriores se escribe en el cmd el comando para listar las
imágenes las cuales se pueden observar y ver que ya se tienen en el repositorio la imagen
gettingstarted.
Iniciar un contenedor de aplicaciones.
Ahora que se tiene una imagen, ejecutemos la aplicación. Para hacerlo, se usa el comando Docker
run.
Iniciamos el contenedor usando el comando Docker run y se especifica el nombre de la imagen
que se acaba de crear.
docker run -dp 3000:3000 getting-started
Se está ejecutando el nuevo contenedor en modo "separado" (en segundo plano) y creando un
mapeo entre el puerto 3000 del host y el puerto 3000 del contenedor. Sin el mapeo de puertos, no
se podría acceder a la aplicación.
Después de unos segundos, se verifica en el navegador web, digitando la dirección
http://localhost:3000 se debería observar ya, la aplicación desplegada.
Se pueden agregar nuevos items y comprobar que la aplicación funciona como se espera. Puede
marcar elementos como completos y eliminar elementos. La interfaz de la aplicación está
almacenando elementos con éxito en el backend.
En este punto, se debería tener un administrador de lista de tareas en ejecución con algunos
elementos. Ahora, se realizarán algunos cambios y para aprender a administrar los contenedores
creados.
En el panel de Docker, se observan los dos contenedores ejecutándose ahora (el contenedor de
aplicaciones recién lanzado).
Abrir un navegador y se digita la dirección http: // localhost: 3000 se debería observar el texto de
ayuda actualizado.
Comparte la aplicación
Ahora que se ha creado una imagen, se procede a compartir imágenes de Docker, antes que nada
se debe crear un registro en Docker Hub y es de ahí donde provienen todas las imágenes que se
han utilizado.
ID de Docker
Una ID de Docker le permite acceder a Docker Hub, que es la biblioteca y comunidad más grande
del mundo para imágenes de contenedores. Cree una ID de Docker de forma gratuita.
Crea un repositorio
Para enviar una imagen, primero se debe crear un repositorio en Docker Hub.
Regístrese o inicie sesión en Docker Hub, haga clic en el botón Crear repositorio.
Para el nombre del repositorio, use getting-started. Asegúrese de que la visibilidad sea Public.
Escogemos la imagen ya creada
la imagen
En la línea de comandos, se ejecuta el comando push que se ve en Docker Hub. se tiene en cuenta
que el comando utilizará su usuario de docker hub, no la palabra "docker".
docker push vonpereira/getting-started:tagname
El comando push buscaba una imagen llamada docker / Getting started, pero no encontró ninguna
Si se ejecuta docker image ls, tampoco se vera ninguno.
Ahora se intenta con el comando push de nuevo. Se está copiando el valor de Docker Hub, se
puede
obviar la tagname, ya que no es necesario agregar una etiqueta al nombre de la imagen. Si no se
especifica una etiqueta, Docker usará una etiqueta llamada latest.
docker push YOUR-USER-NAME/getting-started
Ejecutar la imagen en una nueva instancia
Ahora que la imagen se ha creado y enviado a un registro, ¡se intentará ejecutar la aplicación en
una
instancia nueva que nunca ha visto esta imagen de contenedor! Para hacer esto, se usa Play with
Docker.
Se abre un navegador y se busca la palabra play with docker.
Clic en Iniciar sesión y luego en Docker en la lista desplegable.
Se conecta directamente con su cuenta de Docker Hub.
Una vez que se haya iniciado sesión, se observa la opcion AÑADIR NUEVA INSTANCIA en la barra
lateral izquierda. Después de unos segundos, se abre una ventana de terminal en su navegador.
En la terminal, se inicia la aplicación recién lanzada.
Se debería observar que la imagen se baja y finalmente se inicia.
Clic en la insignia 3000 cuando aparezca y debería ver la aplicación con sus modificaciones. Si la
insignia 3000 no aparece, hacer clic en el botón "Abrir puerto" y escribir 3000.
Fin de la presntacion
Aprendiz : Bartolome Antonio Pereira Ospina
CC 9086647
Contenedores 2910243
Profesora: Mercedes Patricia Paredes
Descargar