You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 01-contenedores/contenedores-i/contenedores-i.sh
+56-40Lines changed: 56 additions & 40 deletions
Original file line number
Diff line number
Diff line change
@@ -1,22 +1,24 @@
1
+
# Día I: Introducción a Docker #
1
2
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/
3
7
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...
6
9
7
-
#Revisar Docker Desktop - Dashboard
10
+
#Ver información del cliente y el servidor que forman Docker Engine.
11
+
docker version
8
12
9
13
#Por defecto se asume que se utilizarán contenedores Linux ( OS/Arch: linux/amd64 en el apartado de Server).
14
+
docker info
10
15
11
16
#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
12
17
cd c:\Program Files\Docker\Docker> .\dockercli -SwitchDaemon
13
18
14
-
docker info
15
-
16
19
#### Ejecuta tu primer contenedor ####
17
20
18
21
#Ejecuta tu primer contenedor
19
-
#CLI command image name
20
22
docker run hello-world
21
23
#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.
22
24
@@ -28,67 +30,81 @@ docker image ls
28
30
#O bien a través del CLI
29
31
docker search nginx
30
32
33
+
#Podemos ejecutar otros contenedores con algo más de funcionalidad que el simple hello-world
34
+
docker run nginx
35
+
31
36
#### 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
33
40
34
41
#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
39
45
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
47
48
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
49
52
docker ps -a
50
53
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
53
58
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
56
61
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
58
63
docker rename gifted_goldberg hello-world
59
64
docker ps -a
60
65
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
65
70
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
67
73
68
-
#### Demo 4: Attach ###
69
74
#Si quiero conectarme a un contenedor
70
75
docker run --name webserver -d nginx #Con -d desatacho
71
76
docker exec -it webserver bash #Ejecuto el proceso bash dentro del contenedor y con -it me atacho a él
72
77
cat /etc/nginx/nginx.conf
73
78
exit
74
79
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 ####
#### Demo 7: Copiar múltiples archivos dentro de una carpeta ####
88
+
## Copiar múltiples archivos dentro de una carpeta ####
83
89
mkdir nginx-logs
84
90
docker cp my-nginx:/var/log/nginx/. nginx-logs
85
91
86
92
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)
89
105
90
106
91
-
#### Demo 9: lo mismo con SQL Server ####
107
+
##SQL Server dockerizado ####
92
108
# 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
93
109
# https://hub.docker.com/_/microsoft-mssql-server
94
110
docker run --name mysqlserver -p 1433:1433 \
@@ -165,4 +181,4 @@ exit
165
181
# - Ejecuta dentro del contenedor la acción ls, para comprobar que los archivos se han copiado correctamente.
166
182
# - Hacer que el servidor web sea accesible desde el puerto 9999 de tu local.
167
183
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