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-iv/contenedores-iv.sh
+36-26Lines changed: 36 additions & 26 deletions
Original file line number
Diff line number
Diff line change
@@ -76,14 +76,17 @@ exit
76
76
77
77
#Se utiliza cuando quieres montar un archivo o directorio dentro de un contenedor
78
78
cd 01-contenedores/contenedores-iv
79
+
79
80
#dev-folder es el directorio que voy a montar dentro de mi contenedor
80
-
docker run -dit --name devtest --mount type=bind,source="$(pwd)"/dev-folder,target=/usr/share/nginx/html/ -p 8080:80 nginx
81
+
#con pwd recupero la carpeta actual
82
+
pwd
83
+
docker run -d --name devtest --mount type=bind,source="$(pwd)"/dev-folder,target=/usr/share/nginx/html/ -p 8080:80 nginx
81
84
docker inspect devtest
82
85
#Ahora cambia en el host el contenido de la carpeta dev-folder
83
86
84
87
#Usar el bind mount como read-only
85
88
docker rm -f devtest
86
-
docker run -dit --name devtest --mount type=bind,source="$(pwd)"/dev-folder,target=/usr/share/nginx/html/,readonly -p 8080:80 nginx
89
+
docker run -d --name devtest --mount type=bind,source="$(pwd)"/dev-folder,target=/usr/share/nginx/html/,readonly -p 8080:80 nginx
87
90
docker inspect devtest
88
91
89
92
#Como está en modo lectura, en teoría no podría crear ningún archivo dentro del directorio donde está montada mi carpeta local
@@ -93,7 +96,6 @@ touch /usr/share/nginx/html/index2.html #Dará error porque el montaje está en
93
96
exit
94
97
95
98
96
-
97
99
#### Backups ####
98
100
#Creo un contenedor con un volumen llamado dbdata. En este caso voy a utilizar la opción -v en lugar de --mount
99
101
docker run -dit -v dbdata:/dbdata --name dbstore ubuntu /bin/bash
@@ -123,36 +125,24 @@ docker volume prune -f
123
125
124
126
#Tmpfs mount
125
127
docker run -dit --name tmptest --mount type=tmpfs,destination=/usr/share/nginx/html/ nginx:latest
126
-
docker container inspect tmptest
128
+
docker container inspect tmptest
127
129
128
130
#También se puede usar el parámetro --tmpfs
129
131
docker run -dit --name tmptest2 --tmpfs /app nginx:latest
130
132
131
-
docker container inspect tmptest2
133
+
docker container inspect tmptest2| grep "Tmpfs" -A 2
132
134
133
135
134
136
### Monitorización ###
135
137
138
+
# Eventos de docker
139
+
docker events
136
140
137
-
#Cómo ver los logs de un contenedor
138
-
docker logs devtest
139
-
140
-
141
-
#docker logs en fluentd
142
-
143
-
#Archivo de configuración de fluentd
144
-
cat fluentd/in_docker.conf
145
-
146
-
#Inicia fluentd en un contenedor. Utilizo bind mount para montar el contenido de in_docker.conf en el archivo fluentd/etc/fluent.conf
147
-
#asegurate de que estás en 01-contenedores/contenedores-v
148
-
docker run -it -p 24224:24224 -v "$(pwd)"/fluentd/in_docker.conf:/fluentd/etc/test.conf -e FLUENTD_CONF=test.conf fluent/fluentd:latest
149
-
150
-
#Arranca un contenedor y lanza algunos mensajes a la salida estándar
151
-
docker run --rm -p 8080:80 --log-driver=fluentd nginx
152
-
153
-
#UI para ver los logs de Fluentd
154
-
docker run -d -p 9292:9292 -p 24224:24224 dvladnik/fluentd-ui #copia el contenido del archivo de configuración en
155
-
141
+
#Como los eventos son en tiempo real, necesitamos crear/modificar/eliminar algo que nos permita generar dichos eventos.
142
+
#Abre otro terminal y ejecuta estos comando:
143
+
docker run --name prueba -d ubuntu sleep 100
144
+
docker volume create prueba
145
+
docker pull busybox
156
146
157
147
#Métricas de un contenedor
158
148
@@ -173,11 +163,31 @@ docker system df
173
163
174
164
#Con esta configuración Docker expondrá las metricas por el puerto 9323.
175
165
#Lo siguiente que necesitamos es ejecutar un servidor de Prometheus. El archivo prometheus-config.yml tiene la configuración de este.
176
-
docker run --name prometheus-srv --mount type=bind,source=/Users/gis/Dev/bootcamp-devops-lemoncode/01-contenedores/contenedores-v/prometheus-config.yml,target=/etc/prometheus/prometheus.yml -p 9090:9090 prom/prometheus
166
+
docker run --name prometheus-srv --mount type=bind,source="$(pwd)"/prometheus-config.yml,target=/etc/prometheus/prometheus.yml -p 9090:9090 prom/prometheus
177
167
178
168
#Ahora puedes acceder a tu servidor de Prometheus a través de http://localhost:9090. Verás que aparece en Targets pero no podrás acceder a los endpoints si utilizas Docker for Mac/Windows
179
169
#Para comprobar que las gráficas funcionan correctamente, genera N contenedores que estén haciendo continuamente ping
180
170
docker run -d alpine ping docker.com
181
171
182
172
#Verás que la gráfica con la métrica engine_daemon_network_actions_seconds_count genera picos. Después de haberlo probado elimina los contenedores
183
-
docker rm -f $(docker ps -aq)
173
+
174
+
#Ver esta información en un Dashboard de Grafana
175
+
docker run -d -p 3000:3000 grafana/grafana
176
+
177
+
#Cómo ver los logs de un contenedor
178
+
docker logs devtest
179
+
180
+
#docker logs en fluentd
181
+
182
+
#Archivo de configuración de fluentd
183
+
cat fluentd/in_docker.conf
184
+
185
+
#Inicia fluentd en un contenedor. Utilizo bind mount para montar el contenido de in_docker.conf en el archivo fluentd/etc/fluent.conf
186
+
#asegurate de que estás en 01-contenedores/contenedores-v
187
+
docker run -it -p 24224:24224 -v "$(pwd)"/fluentd/in_docker.conf:/fluentd/etc/test.conf -e FLUENTD_CONF=test.conf fluent/fluentd:latest
188
+
189
+
#Arranca un contenedor y lanza algunos mensajes a la salida estándar
190
+
docker run --rm -p 3030:80 --log-driver=fluentd nginx
191
+
192
+
#UI para ver los logs de Fluentd
193
+
docker run -d -p 9292:9292 -p 24224:24224 dvladnik/fluentd-ui #copia el contenido del archivo de configuración en
0 commit comments