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-v/contenedores-v.sh
+45-14Lines changed: 45 additions & 14 deletions
Original file line number
Diff line number
Diff line change
@@ -1,30 +1,43 @@
1
1
# Parte 5: Volúmenes #
2
2
3
+
cd 01-contenedores/contenedores-v
4
+
3
5
#Listar los volumenes en el host
4
6
docker volume ls
5
7
6
-
#Crear un nuevo volumen
8
+
#Crear un nuevo volumen con create
7
9
docker volume create data
8
-
9
-
#Inspeccionar el volumen
10
-
docker volume inspect data
11
-
12
-
#Eliminar un volumen específico
13
-
docker volume rm data
14
-
15
-
#Eliminar todos los volumenes que no esté atachados a un contenedor
16
-
docker volume prune -f
10
+
docker volume ls
17
11
18
12
#Crear un contenedor que a su vez crea un volumen
19
13
docker container run -dit --name my-container \
20
14
--mount source=my-data,target=/vol \
21
15
alpine
22
16
17
+
#Se puede utilizar tanto --mount como -v (o --volume)). Originalmente --mount solo se usaba para el modo clúster. Sin embargo, desde la versión 17.06 (Vamos por la 10.03.13) se puede utilizar para contenedores independientes.
18
+
19
+
23
20
#Puedes comprobar que el volumen se ha creado correctamente
24
21
docker volume ls
25
22
26
-
#No puedes eliminar un volumen si hay un contenedor que lo tiene atachado. Te dirá que está en uso.
27
-
docker volume rm my-data
23
+
#Inspeccionar el volumen
24
+
docker volume inspect my-data
25
+
26
+
#En Mac y Windows no podemos ver el contenido de la ruta donde se guardan los volúmenes.
27
+
#En Linux podríamos:
28
+
ssh gis@137.135.216.143
29
+
30
+
#Creamos en este tipo de host los volumenes anteriores, si no estás trabajando en Linux
31
+
sudo docker container run -dit --name my-container \
32
+
--mount source=my-data,target=/vol \
33
+
alpine
34
+
sudo docker volume create data
35
+
36
+
#Al inspeccionar cualquiera de los volúmenes podemos ver cuál es la ruta donde se están almacenando
37
+
sudo docker volume inspect my-data
38
+
#Esta es la ruta donde Docker almacena los volúmenes
39
+
sudo ls -l /var/lib/docker/volumes
40
+
exit
28
41
29
42
#Ahora vamos a añadir algunos datos a nuestro volumen
30
43
docker container exec -it my-container sh
@@ -51,12 +64,30 @@ cat /vol/file1
51
64
exit
52
65
53
66
# Backups
54
-
#Creo un contenedor con un volumen llamado dbdata
55
-
docker run -v /dbdata --name dbstore ubuntu /bin/bash
67
+
#Creo un contenedor con un volumen llamado dbdata. En este caso voy a utilizar la opción -v en lugar de --mount
68
+
docker run -dit -v dbdata:/dbdata --name dbstore ubuntu /bin/bash
69
+
70
+
#Compruebo que efectivamente el volumen dbdata se ha generado utilizando el parámetro -v
71
+
docker volume ls
72
+
73
+
#Ahora copio algunos ficheros dentro del volumen
74
+
docker cp some-files/. dbstore:/dbdata
75
+
76
+
#Compruebo que los archivos están ahí
77
+
docker exec dbstore ls /dbdata
78
+
56
79
#Creo un nuevo contenedor y monto el volumen del contenedor dbstore
57
80
#Ejecuto el comando tar que comprime el contenido
58
81
docker run --rm --volumes-from dbstore -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
59
82
83
+
#Eliminar un volumen específico
84
+
docker volume rm data
85
+
86
+
#No puedes eliminar un volumen si hay un contenedor que lo tiene atachado. Te dirá que está en uso.
87
+
docker volume rm my-data
88
+
89
+
#Eliminar todos los volumenes que no esté atachados a un contenedor
0 commit comments