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
#En Mac y Windows no podemos ver el contenido de la ruta donde se guardan los volúmenes.
120
-
#En Linux podríamos:
121
-
ssh gis@137.135.216.143
121
+
Al inspeccionar cualquiera de los volúmenes podemos ver cuál es la ruta donde se están almacenando:
122
122
123
-
#Creamos en este tipo de host los volumenes anteriores, si no estás trabajando en Linux
124
-
sudo docker container run -dit --name my-container \
125
-
--mount source=my-data,target=/vol \
126
-
alpine
127
-
sudo docker volume create data
123
+
```bash
124
+
docker volume inspect my-data
125
+
```
128
126
129
-
#Al inspeccionar cualquiera de los volúmenes podemos ver cuál es la ruta donde se están almacenando
130
-
sudo docker volume inspect my-data
131
-
#Esta es la ruta donde Docker almacena los volúmenes
132
-
sudo ls -l /var/lib/docker/volumes
133
-
exit
127
+
Ahora vamos a añadir algunos datos a nuestro volumen:
134
128
135
-
#Ahora vamos a añadir algunos datos a nuestro volumen
136
-
docker container exec -it my-container sh
137
-
echo "Hola Lemoncoders!" > /vol/file1
138
-
ls -l /vol
139
-
cat /vol/file1
140
-
exit
129
+
```bash
130
+
docker cp web-content/. my-container:/vol
131
+
```
132
+
133
+
Ahora voy a eliminar el contenedor:
141
134
142
-
#Ahora voy a eliminar el contenedor
135
+
```bash
143
136
docker rm my-container -f
137
+
```
138
+
139
+
Pero el volumen todavía existe
144
140
145
-
#Pero el volumen todavía existe
141
+
```bash
146
142
docker volume ls
143
+
```
144
+
145
+
Por lo que puedo crear un nuevo contenedor y volver a atachar el volumen que tenía con mis datos:
147
146
148
-
#Por lo que puedo crear un nuevo contenedor y volver a atachar el volumen que tenía con mis datos
147
+
```bash
149
148
docker container run -dit --name another-container \
150
149
--mount source=my-data,target=/vol \
151
150
alpine
151
+
```
152
152
153
-
#Comprueba que tu archivo file1 sigue ahí
154
-
docker container exec -it another-container sh
155
-
ls -l /vol
156
-
cat /vol/file1
157
-
exit
158
-
159
-
160
-
161
-
#### Backups ####
162
-
#Creo un contenedor con un volumen llamado dbdata. En este caso voy a utilizar la opción -v en lugar de --mount
163
-
docker run -dit -v dbdata:/dbdata --name dbstore ubuntu /bin/bash
153
+
### Eliminar un volumen específico
164
154
165
-
#Compruebo que efectivamente el volumen dbdata se ha generado utilizando el parámetro -v
166
-
docker volume ls
155
+
Para eliminar un volumen específico, utiliza el comando `docker volume rm` seguido del nombre del volumen. Por ejemplo:
167
156
168
-
#Ahora copio algunos ficheros dentro del volumen
169
-
docker cp some-files/. dbstore:/dbdata
157
+
```bash
158
+
docker volume rm data
159
+
```
170
160
171
-
#Compruebo que los archivos están ahí
172
-
docker exec dbstore ls /dbdata
161
+
No puedes eliminar un volumen si hay un contenedor que lo tiene atachado. Te dirá que está en uso.
173
162
174
-
#Creo un nuevo contenedor y monto el volumen del contenedor dbstore
175
-
#Ejecuto el comando tar que comprime el contenido
176
-
docker run --rm --volumes-from dbstore -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
163
+
```bash
164
+
docker volume rm my-data
165
+
```
177
166
178
-
#Eliminar un volumen específico
179
-
docker volume rm data
167
+
### Eliminar todos los volumenes que no esté atachados a un contenedor
180
168
181
-
#No puedes eliminar un volumen si hay un contenedor que lo tiene atachado. Te dirá que está en uso.
182
-
docker volume rm my-data
169
+
Cuidado con este comando porque eliminará todos los volúmenes que no estén atachados a un contenedor. Para eliminar todos los volúmenes que no estén atachados a un contenedor, utiliza el comando `docker volume prune` seguido de la opción `-f`. Por ejemplo:
183
170
184
-
#Eliminar todos los volumenes que no esté atachados a un contenedor
171
+
```bash
185
172
docker volume prune -f
173
+
```
174
+
175
+
## Tmpfs mount
186
176
177
+
La última forma de almacenar datos en Docker es utilizando un tmpfs mount. Un tmpfs mount es un sistema de archivos temporal que se almacena en la memoria RAM de tu host. Esto significa que si apagas tu máquina, perderás todos los datos que hayas almacenado en tu contenedor.
187
178
188
-
#Tmpfs mount
179
+
```bash
189
180
docker run -dit --name tmptest --mount type=tmpfs,destination=/usr/share/nginx/html/ nginx:latest
190
181
docker container inspect tmptest
182
+
```
183
+
184
+
También se puede usar el parámetro --tmpfs
191
185
192
-
#También se puede usar el parámetro --tmpfs
186
+
```bash
193
187
docker run -dit --name tmptest2 --tmpfs /app nginx:latest
188
+
```
194
189
190
+
```bash
195
191
docker container inspect tmptest2 | grep "Tmpfs" -A 2
0 commit comments