No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

De mi imagen a un contenedor usando CLI

8/19
Recursos

Aportes 37

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Para correr un contenedor desde la terminal usamos el siguiente comando: ```bash docker run -it --rm -d -p 8080:80 --name web sitioweb ``` \- -it: En forma interactiva para ver los logs \- --rm: elimina las versiones anteriores del contenedor \- -d: el contenedor se ejecuta en un segundo plano \- -p: mapea el puerto del contenedor con el puerto de la aplicación para exponerla \- --name: nombre del contenedor \- Finalmente agregar el nombre de la imagen
Con docker estoy solucionando una cantidad de conflictos que le genera anaconda a mis entornos virtuales en python. ### Mejores Prácticas para Empezar con Docker: 1. **Aprender Docker Desde el Principio**: Si estás enfrentando problemas con entornos virtuales y Anaconda, aprender Docker puede ser una excelente solución. Docker te permite contenerizar tus aplicaciones y sus dependencias, lo que evita muchos de los problemas asociados con la gestión de múltiples entornos en tu máquina local. 2. **Practicar con Proyectos Pequeños**: Comienza con proyectos pequeños y simples para familiarizarte con el proceso de construir `Dockerfiles`, crear imágenes y ejecutar contenedores. Por ejemplo, dockerizar una aplicación web básica en Flask o Django te dará una buena comprensión de cómo Docker funciona. 3. **Entender el Ciclo de Vida del Contenedor**: Asegúrate de comprender el ciclo de vida de un contenedor Docker, desde la creación del `Dockerfile` hasta el despliegue y la operación del contenedor. ### Docker en Producción y Desarrollo 1. **Docker en Producción**: En un entorno de producción, efectivamente se llevan contenedores a producción. Esto garantiza que la aplicación se ejecute en un entorno idéntico al de desarrollo y pruebas, lo que minimiza los "funciona en mi máquina" problemas. 2. **Aislamiento y Consistencia**: Docker proporciona un entorno aislado y consistente para tus aplicaciones, similar a un entorno virtual, pero con un nivel adicional de aislamiento y control.
en el min 4:10 estaba dando una explicacion y brinco a otra.. o mejor dicho vuelve a empezar. crea un poco de confusion. por favor revisar la grabacion !
Se logró amigos :') ![](https://static.platzi.com/media/user_upload/image-ee2cb07e-b2ce-489c-b6fa-837de8c0b099.jpg)
Para quienes usamos Linux y no hay Docker Desktop el comando a correr para acceder al EXEC esdocker exec -it \<container\_id\_or\_name> /bin/bash ```js docker exec -it <container_id_or_name> /bin/bash ```

Por la misma razón que el Profesor mencionó … "se nos olvida cosas"
Y como ahora tenemos acceso a asistencia con inteligencia artificial al ver el curso intento de encontrar como le preguntaría a la inteligencia artifical.

Obviamente no es tan confiable (por limitaciones tal vez de contexto), y realmente hay que verlo como un asistente.

Mi pregunta para este caso fue:

1-¿Cómo puedo desplegar de forma eficiente un contenedor Docker con el nombre ‘test’ en el puerto 80?
Respuesta: docker run -d -p 80:80 --name test <imagen>

2-Por qué omitiste el parámetro -it y el --rm?
Respuesta: …Los parámetros -it y --rm son útiles en ciertos contextos, pero no siempre son necesarios. Aquí te explico qué hacen: bla, bla, bla…

disculpe profesor, creo que hay un error de edición en el minuto 4 en donde explica los puertos porque se repite la explicación.
¡Se logrooo! ![](https://static.platzi.com/media/user_upload/image-3518e61a-9e93-43a8-9e91-6d778fbf50ca.jpg) ![](https://static.platzi.com/media/user_upload/image-297b6a94-7533-4f8e-87c5-276cac31ebb7.jpg)
En mi caso, corri un server api de express ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202024-01-31%20151321-106a68ee-ce26-4aa5-8d5d-1d88fb6f2e03.jpg)![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202024-01-31%20151321-6c189883-4503-40e5-b974-cedf561fbf98.jpg)![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202024-01-31%20151321-aa750a4d-2450-48d8-a3e5-7c6697ff3fe3.jpg)
¿Hubo falta de edicion cuando explicaba el parametro `-p` ? la explicacion se repite dos veces.
Un contenedor es una instancia en tiempo de ejecución de una imagen docker. Un contenedor siempre se ejecutará igual, independientemente de la infraestructura. Los contenedores aíslan el software de su entorno y garantizan que funcione uniformemente a pesar de las diferencias, por ejemplo, entre desarrollo y la puesta en escena.
En mi caso no me identifica los archivos que se llamen index.html no se que se debe
Para que hacerlo fácil con la UI
¡Esto es magia! Que increible herramienta resulta ser Docker. Provee aislamiento, independencia y mayor control sobre las aplicaciones. Además, su proceso para construir Dockerfile, imágenes y, luego, contenedores, resulta legible y ordenado.
Brutal! ♥ ![](https://static.platzi.com/media/user_upload/image-78e02ada-8a21-4bea-8307-fe2d9c74c8c8.jpg)
La imagen que generé fue sitioweb:1.0.1-SNAPSHOT por lo que le comando quedó: docker run -it --rm -d -p 8080:80 --name web sitioweb:1.0.0-SNAPSHOT
Hice todo el proceso y funciono!!!! ![](https://static.platzi.com/media/user_upload/Screenshot%20from%202024-08-07%2021-51-39-c12a1ab2-7363-4037-b767-22b62acb160f.jpg)
excelente clase!!
docker run -it --rm -d -p 8080:80 --name web nombreContenedor
## **Creación de Imágenes con Docker** ### Creacion de docker file * **Crear Imagen de Docker:**Construye una imagen Docker a partir del Dockerfile en el directorio actual (`.`) y le asigna el nombre `cvsitio` con la etiqueta `latest`docker build -t cvsitio:latest . * **Crear el Contenedor:**docker run -it --rm -d -p 8080:80 --name webcv cvsitio Ejecuta un contenedor Docker con las siguientes opciones: * `it`: Ejecuta el contenedor en modo interactivo con un terminal TTY. * `-rm`: Elimina el contenedor automáticamente cuando se detiene. * `d`: Ejecuta el contenedor en segundo plano (modo "detached"). * `p 8080:80`: Mapea el puerto 8080 del host al puerto 80 del contenedor. * `-name webcv`: Asigna el nombre `webcv` al contenedor. * `cvsitio`: Especifica la imagen `cvsitio` para ejecutar el contenedor. * **Otros Importantes:**# Muestra las imagenes docker images \# Elimina la imagen con el ID docker rmi -f \<image\_id> \# Enlista los contenedores docker ps
no puedo acceder al localhost en Mac, hola no se que sucede pero mi macbook no me deja acceder al localhost, he intentado 2 veces uno con un proyecto en el que debo colaborar y ahora en este tutorial tampoco me deja acceder, ya descative el antivirus, ya desactife el firewall y aun asi no me deja. por favor alguien que pueda ayudarme?![]()![](https://static.platzi.com/media/user_upload/Screenshot%202024-03-07%20at%2016.34.04-5e69658a-e037-48e6-be77-9ace8c316b58.jpg)
![](https://static.platzi.com/media/user_upload/image-8ac7b73a-4386-4c27-9009-210e3a67aebc.jpg) genial
Para quienes usamos Linux y no hay Docker Desktop el comando a correr para acceder al EXEC es: ```js docker exec -it <container_id_or_name> /bin/bash ```docker exec -it \<container\_id\_or\_name> /bin/bash
Para quienes usamos Linux y no hay Docker Desktop el comando a correr para acceder al EXEC es: Para quienes usamos Linux y no hay Docker Desktop el comando a correr para acceder al EXEC es:```js docker exec -it <container_id_or_name> /bin/bash ```
MacOS issue fixed 🤯 Hola compañeros, estuve un buen rato batallando con `MacOS Sonoma 14.4.1`. Pero al final encontré un quick fix. Este era el error en mi terminal: `docker: Error response from daemon: pull access denied for web ...` Lo solucioné de la siguiente forma: 1\. Hice un nuevo archivo en la raíz, llamado `default.config` con este código: `server {` ` listen 80;` ` server_name localhost;` `}` Habilito el puerto 80 y renombro el server\_name por localhost. 2\. Modifico el Dockerfile así: `FROM nginx:latest` `COPY default.conf /etc/nginx/conf.d/default.conf` `COPY /sitio /usr/share/nginx/html` 3\. Me aseguro de haber eliminado los posibles contenedores que tengo y la imagen de "sitioweb". 4\. Vuelvo a ejecutar build: `docker build -t sitioweb:latest .` 5\. Me aseguro que exista la imagen "sitioweb" con el tag "latest" y ejecuto nuevamente el comando run, pero colocando la etiqueta de esta manera: `docker run -it --rm -d -p 8080:80 --name web sitioweb:latest` 6\. ¡Listo crack, en el terminal deberías de ver el id de tu nuevo contenedor!
Un resumen, para crear el contenedor desde línea de comandos con una explicación breve: ╭─jairgf@Jair-G Docker ╰─$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE sitioweb latest 751aa16e7b56 6 hours ago 187MB docker/welcome-to-docker latest c1f619b6477e 5 weeks ago 18.6MB jairgf/django-test latest a1f0654b6377 7 weeks ago 1.1GB django-1 v1 a1f0654b6377 7 weeks ago 1.1GB ╭─jairgf@Jair-G Docker ╰─$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ╭─jairgf@Jair-G Docker ╰─$ docker run -it --rm -d -p 8080:80 --name web sitioweb dd5eb4ed68982bb27cf5dbb534724a78a1870bb72b1dc2460dc9a579f9acf052 # Notas bandera -it es de interactivo, si el proyecto regresa laguna respuesta lo puedo ver en la terminal. --rm(remove): sirve para eliminar para eliminar cualquier versión del contenedor previamente ejecutada. -d : va a llamar la aplicación en segundo plano lista para usar. -p : indica en que puerto se va aejecutar la aplicación, en este caso 8080 --name: asigna un nombre al contenedor en este caso web. NOta: el último parametro es el nombre de la imagen , en este caso sitioweb
La unica ventana que se logra ver![](https://static.platzi.com/media/user_upload/image-0783e7f4-0bbd-46e8-8c23-d71b27dd6644.jpg)
Se logró!! ![](https://static.platzi.com/media/user_upload/funco-9620e200-746d-4d23-a6c4-b3402b41b075.jpg) Que bien que este profe hace prácticas y realiza una muy buena explicación durante todo el proceso.
Con el comando docker ps también puedes incluir opciones adicionales para personalizar la salida: -a (o --all): Muestra todos los contenedores, incluidos los detenidos. \--filter (o -f): Permite filtrar la salida según condiciones específicas, como la ID del contenedor, su nombre o su estado. \--format: Imprime la salida utilizando una plantilla de Go, lo que permite personalizar los campos que se muestran. \--size (o -s): Muestra información sobre el uso de disco por contenedor. En resumen, docker ps es una herramienta útil para administrar y supervisar los contenedores en tu entorno Docker.
![](https://static.platzi.com/media/user_upload/image-0ec24d57-4ccd-4c66-87dc-4b0171b290ba.jpg) No me permite leer nuevos archivos solo los mismos por defecto he intentado horas invenstigando y no se que hacer
![]()Se logro!!![](https://static.platzi.com/media/user_upload/image-df167899-82a7-4302-bd84-bcd0eb6b962b.jpg)
no puedo acceder al localhost en Mac, hola no se que sucede pero mi macbook no me deja acceder al localhost, he intentado 2 veces uno con un proyecto en el que debo colaborar y ahora en este tutorial tampoco me deja acceder, ya descative el antivirus, ya desactife el firewall y aun asi no me deja. por favor alguien que pueda ayudarme?![]()
no puedo acceder al localhost en Mac, hola no se que sucede pero mi macbook no me deja acceder al localhost, he intentado 2 veces uno con un proyecto en el que debo colaborar y ahora en este tutorial tampoco me deja acceder, ya descative el antivirus, ya desactife el firewall y aun asi no me deja. por favor alguien que pueda ayudarme?![]()![](<Screenshot 2024-03-07 at 16.34.04>)
![](https://static.platzi.com/media/user_upload/image-23f26672-b017-4c43-9f14-f6d183e3c272.jpg) ![](https://static.platzi.com/media/user_upload/image-812ceb14-1c56-47cd-b2a5-bf125cbf03ce.jpg)
A mi me dio error usando mac. Tuve que poner el tag al final del comando. Creo que por defecto añade 'latest' pero como no usé los mismos nombres tuve que especificar: docker run -it --rm -d -p 8080:80 --name web site:test
¡Bien, ya tengo mi primera imagen con Docker! ![](https://static.platzi.com/media/user_upload/image-243aa009-dad8-46e5-abaa-a441ae9cf0fb.jpg)

De imagen a contenedor: línea de comandos

╭─jairgf@Jair-G Docker
╰─$ **docker images**
REPOSITORY                 TAG       IMAGE ID       CREATED       SIZE
sitioweb                   latest    751aa16e7b56   6 hours ago   187MB
docker/welcome-to-docker   latest    c1f619b6477e   5 weeks ago   18.6MB
jairgf/django-test         latest    a1f0654b6377   7 weeks ago   1.1GB
django-1                   v1        a1f0654b6377   7 weeks ago   1.1GB
╭─jairgf@Jair-G Docker
╰─$ **docker ps**
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
╭─jairgf@Jair-G Docker
╰─$ **docker run -it --rm -d -p 8080:80 --name web sitioweb**
dd5eb4ed68982bb27cf5dbb534724a78a1870bb72b1dc2460dc9a579f9acf052

# Notas
bandera **-it** es de interactivo, si el proyecto regresa laguna respuesta lo puedo
ver en la terminal.

**--rm(remove):** sirve para eliminar para eliminar cualquier versión del contenedor 
previamente ejecutada.

**-d** : va a llamar la aplicación en segundo plano lista para usar.

**-p** : indica en que puerto se va  aejecutar la aplicación, en este caso 8080

**--name**: asigna un nombre al contenedor en este caso **web**.

NOta: el **último parametro** es el nombre de la imagen , en este caso **sitioweb**

con docker ps -a podemos ver todos los contenedores aunque no estén en ejecución.