Skip to content

Commit 018fcb2

Browse files
committed
Actualizar Dockerfile para copiar el contenido de la carpeta "web" en lugar de "content"
1 parent 4cf854a commit 018fcb2

2 files changed

Lines changed: 72 additions & 26 deletions

File tree

01-contenedores/contenedores-iv/README.md

Lines changed: 41 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,48 @@
22

33
![Docker](imagenes/Cómo%20gestionar%20el%20almacenamiento%20en%20Docker.jpeg)
44

5+
6+
En algún momento tus contenedores morirán y tendrás que volver a levantarlos. Si no has guardado los datos que tenían, perderás toda la información que tenían. Por eso es importante saber cómo gestionar el almacenamiento en Docker.
7+
8+
Existen diferentes formas de almacenar datos en Docker. En este módulo vamos a ver las siguientes:
9+
10+
- Bind mounts
11+
- Volumenes
12+
- Tmpfs mount
13+
14+
## Bind mounts
15+
16+
Un bind mount es un enlace directo entre una carpeta en tu host y una carpeta en tu contenedor. Esto significa que si cambias algo en la carpeta del host, también cambiará en la carpeta del contenedor y viceversa.
17+
18+
Para crear un bind mount, utiliza la opción `--mount` o `-v` al crear un contenedor. Por ejemplo:
19+
20+
```bash
521
cd 01-contenedores/contenedores-iv
22+
docker run -d --name devtest --mount type=bind,source="$(pwd)"/dev-folder,target=/usr/share/nginx/html/ -p 8080:80 nginx
23+
```
24+
25+
Si cambias el contenido de la carpeta `dev-folder` en tu host, también cambiará en la carpeta `/usr/share/nginx/html/` en tu contenedor.
26+
27+
#### Usar el bind mount como read-only
28+
29+
Tambi´n puedes montar un bind mount como read-only. Esto significa que no podrás escribir en la carpeta del contenedor. Para hacerlo, añade la opción `readonly` al comando `--mount`. Por ejemplo:
30+
31+
```bash
32+
docker rm -f devtest
33+
docker run -d --name devtest --mount type=bind,source="$(pwd)"/dev-folder,target=/usr/share/nginx/html/,readonly -p 8080:80 nginx
34+
docker inspect devtest
35+
```
36+
37+
Como está en modo lectura, en teoría no podría crear ningún archivo dentro del directorio donde está montada mi carpeta local:
38+
39+
```bash
40+
docker container exec -it devtest sh
41+
ls /usr/share/nginx/html
42+
touch /usr/share/nginx/html/index2.html #Dará error porque el montaje está en modo read-only
43+
exit
44+
```
45+
46+
## Volúmenes
647

748
#Listar los volumenes en el host
849
docker volume ls
@@ -75,29 +116,6 @@ cat /vol/file1
75116
exit
76117

77118

78-
## Bind mounts ##
79-
80-
#Se utiliza cuando quieres montar un archivo o directorio dentro de un contenedor
81-
cd 01-contenedores/contenedores-iv
82-
83-
#dev-folder es el directorio que voy a montar dentro de mi contenedor
84-
#con pwd recupero la carpeta actual
85-
pwd
86-
docker run -d --name devtest --mount type=bind,source="$(pwd)"/dev-folder,target=/usr/share/nginx/html/ -p 8080:80 nginx
87-
docker inspect devtest
88-
#Ahora cambia en el host el contenido de la carpeta dev-folder
89-
90-
#Usar el bind mount como read-only
91-
docker rm -f devtest
92-
docker run -d --name devtest --mount type=bind,source="$(pwd)"/dev-folder,target=/usr/share/nginx/html/,readonly -p 8080:80 nginx
93-
docker inspect devtest
94-
95-
#Como está en modo lectura, en teoría no podría crear ningún archivo dentro del directorio donde está montada mi carpeta local
96-
docker container exec -it devtest sh
97-
ls /usr/share/nginx/html
98-
touch /usr/share/nginx/html/index2.html #Dará error porque el montaje está en modo read-only
99-
exit
100-
101119

102120
#### Backups ####
103121
#Creo un contenedor con un volumen llamado dbdata. En este caso voy a utilizar la opción -v en lugar de --mount

01-contenedores/contenedores-iv/dev-folder/index.html

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,38 @@
44
<meta charset="UTF-8">
55
<meta name="viewport" content="width=device-width, initial-scale=1.0">
66
<title>Hello, Lemoncoders!</title>
7+
<style>
8+
body {
9+
font-family: Arial, sans-serif;
10+
background-color: #f4f4f9;
11+
color: #333;
12+
margin: 0;
13+
padding: 0;
14+
display: flex;
15+
justify-content: center;
16+
align-items: center;
17+
height: 100vh;
18+
}
19+
h1 {
20+
color: #4CAF50;
21+
}
22+
p {
23+
max-width: 600px;
24+
line-height: 1.6;
25+
}
26+
.container {
27+
text-align: center;
28+
padding: 20px;
29+
background: #fff;
30+
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
31+
border-radius: 8px;
32+
}
33+
</style>
734
</head>
835
<body>
9-
<h1>Bind mounts en Docker</h1>
10-
<p>Gracias a los bind mounts puedo trabajar con mi contenido en local y montarlo en un contenedor a la vez.</p>
11-
<p>Esto es muy útil cuando estás desarrollando y quieres servir el contenido desde el contenedor</p>
36+
<div class="container">
37+
<h1>Bind mounts en Docker</h1>
38+
<p>Gracias a los bind mounts puedo trabajar con mi contenido en local y montarlo en un contenedor a la vez.</p>
39+
</div>
1240
</body>
1341
</html>

0 commit comments

Comments
 (0)