Skip to content

Commit f3ab25c

Browse files
committed
Revisado el modulo 1 y actualizado el README con el contenido de este
1 parent 28ee0d9 commit f3ab25c

2 files changed

Lines changed: 87 additions & 41 deletions

File tree

01-contenedores/README.md

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,31 @@
1-
# Modulo 2 - Contenedores Docker
1+
# Módulo 2 - Contenedores Docker
2+
3+
## Agenda
4+
5+
### Día I: Introducción a Docker
6+
7+
- ¿Por dónde empiezo?
8+
* Docker Desktop
9+
* Docker en Linux
10+
* Docker CLI client: La línea de comandos interactiva
11+
- Comandos básicos:
12+
* Ejecutar tu primer contenedor
13+
* Introducción a las imágenes
14+
* Docker Hub
15+
* Exponer puertos de un contenedor
16+
* ¿Dónde están los contenedores creados hasta ahora?
17+
* Personalizar el nombre de los contenedores
18+
* Ejecutar un contenedor y lanzar un shell interactivo en él
19+
* Ejecutar comandos desde mi local dentro del contenedor
20+
* Conectarme a un contenedor
21+
* Copiar archivos desde local a un contenedor y viceversa
22+
* Cómo parar/iniciar un contenedor ya creado
23+
* Eliminar contenedores
24+
* Docker Desktop Dashboard para la gestión de contenedores
25+
26+
- Ejemplo práctico: SQL Server dockerizado
27+
- Deberes
28+
29+
### Día II: Trabajando con imágenes
30+
31+
-

01-contenedores/contenedores-i/contenedores-i.sh

Lines changed: 56 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,24 @@
1+
# Día I: Introducción a Docker #
12

2-
# Parte I: Introducción a los contenedores de Docker #
3+
#Si estás en Windows o Mac: Revisar Docker Desktop:
4+
https://docs.docker.com/docker-for-windows/
5+
https://docs.docker.com/docker-for-mac/
6+
#Si trabajas con Linux elige tu distro aquí: https://docs.docker.com/engine/install/
37

4-
#Ver información del cliente y el servidor que forman Docker Engine.
5-
docker version
8+
# Una vez que tienes Docker instalado en tu máquina...
69

7-
#Revisar Docker Desktop - Dashboard
10+
#Ver información del cliente y el servidor que forman Docker Engine.
11+
docker version
812

913
#Por defecto se asume que se utilizarán contenedores Linux ( OS/Arch: linux/amd64 en el apartado de Server).
14+
docker info
1015

1116
#Si estás en Windows puedes cambiar al tipo de contenedores Windows haciendo click con el botón derecho sobre el icono de Docker en la barra de tareas y eligiendo Switch to Windows Containers
1217
cd c:\Program Files\Docker\Docker> .\dockercli -SwitchDaemon
1318

14-
docker info
15-
1619
#### Ejecuta tu primer contenedor ####
1720

1821
#Ejecuta tu primer contenedor
19-
#CLI command image name
2022
docker run hello-world
2123
#hello-world es la imagen que estás usando para crear tu contenedor. Una imagen es un objeto que contiene un SO, una aplicación y las dependencias que esta necesita. Si eres desarrollador puedes pensar en una imagen como si fuera una clase.
2224

@@ -28,67 +30,81 @@ docker image ls
2830
#O bien a través del CLI
2931
docker search nginx
3032

33+
#Podemos ejecutar otros contenedores con algo más de funcionalidad que el simple hello-world
34+
docker run nginx
35+
3136
#### Exponer puertos en localhost (Nginx) ####
32-
docker run --name my-nginx -p 8080:80 nginx #Puedes ver cuando se ejecuta este comando que el terminal te muestra los logs que van surgiendo de este contenedor que acabas de crear.
37+
docker run --publish 8080:80 nginx #Puedes ver cuando se ejecuta este comando que el terminal te muestra los logs que van surgiendo de este contenedor que acabas de crear.
38+
#Normalmente, por acortar en lugar de publish utilizamos -p
39+
docker run -p 8080:80 nginx
3340

3441
#Ejecutar un contenedor en segundo plano
35-
docker run -d --name my-nginx -p 8080:80 nginx
36-
37-
#Ejecutar un contenedor y lanzar un shell interactivo en él
38-
docker run -it --name my_ubuntu_container ubuntu /bin/bash
42+
docker run --detach -p 8080:80 nginx
43+
#o
44+
docker run -d -p 8080:80 nginx
3945

40-
#### Ver qué puertos tiene un contenedor expuestos ####
41-
docker port my-nginx
42-
43-
#### Gestionar contenedores en tu máquina ####
44-
45-
#Lista los contenedores ejecutándose en tu máquina
46-
docker ps #¿Y los otros contenedores que he ejecutado?
46+
#Después de haber lanzado cvarios contenedores te preguntarás ¿cómo puedo ver los que tengo ahora mismo ejecutándose?
47+
docker ps
4748

48-
docker ps --all #con --all puedo ver todos los contenedores, incluso los que ya terminaron de ejecutarse, como hello-world
49+
#Pero... yo he lanzado muchos más ¿dónde están?
50+
docker ps --all
51+
#o bien
4952
docker ps -a
5053

51-
# ¿Cómo paro un contenedor?
52-
docker stop my-nginx
54+
#En todos los ejemplos anteriores, Docker ha elegido un nombre aleatorio para nuestros contenedores (columna NAMES).
55+
#Sin embargo, muchas veces es útil poder elegir nosotros el nombre que queremos.
56+
#Para elegir el nombre de tu contenedor basta con utilizar la opción --name
57+
docker run -d --name my-web -p 9090:80 nginx
5358

54-
# ¿Y si quiero volver a iniciarlo?
55-
docker start my-nginx
59+
#Si vuelves a listar los contenedores verás que tienes uno nuevo llamado my-web
60+
docker ps
5661

57-
#Es importante hacer uso de nombres personalizados porque será más sencillo luego referirnos a él como veremos después.
62+
#También puedes renombrar existentes
5863
docker rename gifted_goldberg hello-world
5964
docker ps -a
6065

61-
#¿Y si quiero eliminarlo del todo de mi ordenador?
62-
docker rm hello-world
63-
docker ps -a #El contenedor hello-world ya no aparece en el listado
64-
66+
#Ejecutar un contenedor y lanzar un shell interactivo en él
67+
docker run -it --name my_ubuntu_container ubuntu /bin/bash
68+
cat /etc/os-release
69+
exit
6570

66-
#Todo esto también es posible verlo desde la interfaz de Docker Desktop (A través de la opción Dashboard)
71+
# Ejecutar comandos desde mi local dentro del contenedor ####
72+
docker exec my-web ls /var/log/nginx
6773

68-
#### Demo 4: Attach ###
6974
#Si quiero conectarme a un contenedor
7075
docker run --name webserver -d nginx #Con -d desatacho
7176
docker exec -it webserver bash #Ejecuto el proceso bash dentro del contenedor y con -it me atacho a él
7277
cat /etc/nginx/nginx.conf
7378
exit
7479

75-
#### Demo 5: Copiar un archivo desde mi local a dentro del contenedor ####
80+
81+
## Copiar un archivo desde mi local a dentro del contenedor ####
7682
#https://docs.docker.com/engine/reference/commandline/cp/
77-
docker cp local.html my-nginx:/usr/share/nginx/html/local.html
83+
docker cp local.html my-web:/usr/share/nginx/html/local.html
7884

79-
#### Demo 6: Copiar el archivo de logs en local ####
80-
docker cp my-nginx:/var/log/nginx/access.log access.log
85+
## Copiar el archivo de logs en local ####
86+
docker cp my-web:/var/log/nginx/access.log access.log
8187

82-
#### Demo 7: Copiar múltiples archivos dentro de una carpeta ####
88+
## Copiar múltiples archivos dentro de una carpeta ####
8389
mkdir nginx-logs
8490
docker cp my-nginx:/var/log/nginx/. nginx-logs
8591

8692

87-
#### Demo 8: Ejecutar comandos desde mi local dentro del contenedor ####
88-
docker exec my-nginx ls /var/log/nginx
93+
# ¿Cómo paro un contenedor?
94+
docker stop my-web
95+
96+
# ¿Y si quiero volver a iniciarlo?
97+
docker start my-web
98+
99+
#¿Y si quiero eliminarlo del todo de mi ordenador?
100+
docker rm hello-world
101+
docker ps -a #El contenedor hello-world ya no aparece en el listado
102+
103+
104+
#Todo esto también es posible verlo desde la interfaz de Docker Desktop (A través de la opción Dashboard)
89105

90106

91-
#### Demo 9: lo mismo con SQL Server ####
107+
## SQL Server dockerizado ####
92108
# Imagínate que estás desarrollando una aplicación que necesita de un SQL Server y no quieres tener que montarte uno y ensuciar tu máquina, o tener que crearte una máquina virtual, configurarla, bla, bla, bla
93109
# https://hub.docker.com/_/microsoft-mssql-server
94110
docker run --name mysqlserver -p 1433:1433 \
@@ -165,4 +181,4 @@ exit
165181
# - Ejecuta dentro del contenedor la acción ls, para comprobar que los archivos se han copiado correctamente.
166182
# - Hacer que el servidor web sea accesible desde el puerto 9999 de tu local.
167183

168-
# 3. Eliminar todos los contenedores que tienes ejecutándose en tu máquina en una sola línea.
184+
# 3. Eliminar todos los contenedores que tienes ejecutándose en tu máquina en una sola línea.

0 commit comments

Comments
 (0)