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/README.md
+18-10Lines changed: 18 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,6 +33,12 @@ Si analizamos este comando tenemos:
33
33
> [!NOTE]
34
34
> Es comendable utilizar la opción `--mount` en lugar de `-v` o `--volume` porque es más explícito y fácil de leer.
35
35
36
+
Si quisieras hacerlo con -v
37
+
38
+
```bash
39
+
docker run -d --name halloween-web-v -v "$(pwd)"/web-content:/usr/share/nginx/html/ -p 8081:80 nginx
40
+
```
41
+
36
42
37
43
Si cambias el contenido de la carpeta `web-content` en tu máquina local, también cambiará en la carpeta `/usr/share/nginx/html/` en tu contenedor.
38
44
@@ -41,8 +47,7 @@ Si cambias el contenido de la carpeta `web-content` en tu máquina local, tambi
41
47
También puedes montar un bind mount como read-only. Esto significa que desde tu máquina podrás cambiar el contenido sin problemas pero desde dentro del contenedor no se podrá. Para hacerlo, añade la opción `readonly` al comando `--mount`. Por ejemplo:
42
48
43
49
```bash
44
-
docker run -d --name halloween-readonly --mount type=bind,source="$(pwd)"/web-content,target=/usr/share/nginx/html/,readonly -p 8080:80 nginx
45
-
docker inspect halloween-readonly
50
+
docker run -d --name halloween-readonly --mount type=bind,source="$(pwd)"/web-content,target=/usr/share/nginx/html/,readonly -p 8082:80 nginx
46
51
```
47
52
48
53
Como está en modo lectura, en teoría no podría crear ningún archivo dentro del directorio donde está montada mi carpeta local:
@@ -77,22 +82,28 @@ docker volume ls
77
82
Si quisieramos utilizar este volumen en un contenedor, podríamos hacerlo de la siguiente manera:
78
83
79
84
```bash
80
-
docker run -d --name halloween-volume --mount source=halloween-data,target=/usr/share/nginx/html/ -p 8081:80 nginx
85
+
docker run -d --name halloween-with-volume --mount source=halloween-data,target=/usr/share/nginx/html/ -p 8083:80 nginx
81
86
```
82
87
83
88
En este caso el volumen `halloween-data` se ha montado en la carpeta `/usr/share/nginx/html/` del contenedor `halloween-volume`.
84
89
90
+
Sin embargo, en este caso deberíamos de copiar dentro de este volumen el contenido que queramos la primera vez:
### Crear un contenedor que a su vez crea un volumen
86
97
87
98
También es posible crear un contenedor que a su vez cree un volumen.
88
99
89
100
```bash
90
-
docker run -d --name halloween-demo -v web-data:/usr/share/nginx/html/ -p 8082:80 nginx
101
+
docker run -d --name halloween-demo -v web-data:/usr/share/nginx/html/ -p 8084:80 nginx
91
102
```
92
103
93
104
En este caso, al ejecutarse el contenedor `halloween-demo` se creará un volumen llamado `web-data` que se montará en la carpeta `/usr/share/nginx/html/` del contenedor.
94
105
95
-
Estos volumenes de primeras no tienen datos. En el caso de los contenedores que utilizan la imagen `nginx` se creará un fichero `index.html` por defecto. Si queremos añadir datos a nuestro volumen, podemos hacerlo de la siguiente manera:
No puedes eliminar un volumen si hay un contenedor que lo tiene atachado. Te dirá que está en uso.
133
144
134
-
```bash
135
-
docker volume rm halloween-data
136
-
```
137
145
138
146
### Eliminar todos los volumenes que no esté atachados a un contenedor
139
147
@@ -148,7 +156,7 @@ docker volume prune -f
148
156
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.
149
157
150
158
```bash
151
-
docker run -dit --name tmptest --mount type=tmpfs,destination=/usr/share/nginx/html/ nginx
159
+
docker run -dit --name tmptest --mount type=tmpfs,destination=/usr/share/nginx/html/ -p 8086:80 nginx
0 commit comments