Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

367
Vistas
¿Cómo montar el volumen del contenedor al host en Docker?

Tengo una pregunta sobre todo el proceso de volumen de datos en Docker. Básicamente, aquí hay dos Dockerfiles y sus respectivos comandos de ejecución:

archivo acoplable 1 -

 # Transmission over Debian # # Version 2.92 FROM debian:testing RUN apt-get update \ && apt-get -y install nano \ && apt-get -y install transmission-daemon transmission-common transmission-cli \ && mkdir -p /transmission/config /transmission/watch /transmission/download ENTRYPOINT ["transmission-daemon", "--foreground"] CMD ["--config-dir", "/transmission/config", "--watch-dir", "/transmission/watch", "--download-dir", "/transmission/download", "--allowed", "*", "--no-blocklist", "--no-auth", "--no-dht", "--no-lpd", "--encryption-preferred"]

Comando 1 -

 docker run --name transmission -d -p 9091:9091 -v C:\path\to\config:/transmission/config -v C:\path\to\watch:/transmission/watch -v C:\path\to\download:/transmission/download transmission

Archivo acoplable 2 -

 # Nginx over Debian # # Version 1.10.3 FROM debian:testing RUN apt-get update \ && apt-get -y install nano \ && apt-get -y install nginx EXPOSE 80 443 CMD ["nginx", "-g", "daemon off;"]

Comando 2 -

 docker run --name nginx -d -p 80:80 -v C:\path\to\config:/etc/nginx -v C:\path\to\html:/var/www/html nginx

Entonces, lo extraño es que el primer archivo acoplable y el comando funcionan según lo previsto. Donde el demonio docker monta un directorio desde el contenedor hasta el host. Por lo tanto, puedo editar los archivos de configuración a mi gusto y se conservarán en el contenedor en un reinicio.

Sin embargo, en cuanto al segundo dockerfile y comando, parece que no funciona. Sé que si va a la documentación de Docker Volume, dice que los montajes de volumen solo están destinados a ir en una dirección, del host al contenedor, pero ¿cómo es que el contenedor de transmisión funciona según lo previsto, mientras que el contenedor de Nginx no?

P:S: estoy ejecutando Microsoft Windows 10 Pro Build 14393 como mi host y la versión 17.03.0-ce-win1 (10300) Channel: beta como mi versión de Docker.

Editar - Solo para aclarar. Estoy tratando de obtener los archivos desde el interior del contenedor Nginx al host. El primer contenedor (Transmisión) funciona en ese sentido, utilizando un volumen de datos. Sin embargo, para el segundo contenedor (Nginx), no desea copiar los archivos del directorio montado desde el interior del contenedor al host. Sin embargo, todo lo demás funciona, se inicia con éxito.

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Los volúmenes de host no copian datos del contenedor > host. Los volúmenes de host se montan sobre lo que hay en el contenedor o la imagen, por lo que reemplazan efectivamente lo que hay en el contenedor con lo que hay en el host.

Un volumen estándar o "con nombre" copiará los datos existentes de la imagen del contenedor en un nuevo volumen. Estos volúmenes se crean lanzando un contenedor con el comando VOLUME en su Dockerfile o mediante el comando docker

 docker run -v myvolume:/var/whatever myimage

De forma predeterminada, estos son datos almacenados en un volumen "local", siendo "local" en el host de Docker. En su caso, está en la máquina virtual que ejecuta Docker en lugar de su host de Windows, por lo que es posible que no pueda acceder fácilmente a él.

¿Podría estar confundiendo los archivos de generación automática de transmisión en un directorio en blanco con una copia?

Si realmente necesita mantener las asignaciones de contenedor de VM Host >, es posible que deba copiar los datos manualmente:

 docker create --name nginxcopy nginx docker cp nginxcopy:/etc/nginx C:\path\to\config docker cp nginxcopy:/var/www/html C:\path\to\html docker rm nginxcopy

Y luego puede mapear los directorios de host poblados en el contenedor y tendrán los datos predeterminados con los que vino la imagen.

about 4 years ago · Santiago Trujillo Denunciar

0

El volumen host no copiará datos como lo hará un volumen con nombre. Sin embargo, puede crear un volumen con nombre que realice un montaje de vinculación, que luego tendrá las propiedades de inicialización de datos de cualquier otro volumen con nombre. El único requisito previo de un montaje de enlace sobre un volumen de host es que el directorio debe existir de antemano, Docker no lo creará para usted como lo hace con un volumen de host. Aquí hay tres ejemplos diferentes de cómo crear un volumen de montaje de enlace:

 # create the volume in advance $ docker volume create --driver local \ --opt type=none \ --opt device=/home/user/test \ --opt o=bind \ test_vol # create on the fly with --mount $ docker run -it --rm \ --mount type=volume,dst=/container/path,volume-driver=local,volume-opt=type=none,volume-opt=o=bind,volume-opt=device=/home/user/test \ foo # inside a docker-compose file ... volumes: bind-test: driver: local driver_opts: type: none o: bind device: /home/user/test ...

Entonces, en su ejemplo con un comando de docker run , puede usar la sintaxis de montaje:

 docker run --name nginx -d -p 80:80 \ --mount type=volume,dst=/etc/nginx,volume-driver=local,volume-opt=type=none,volume-opt=o=bind,volume-opt=device=/c/path/to/config \ --mount type=volume,dst=/var/www/html,volume-driver=local,volume-opt=type=none,volume-opt=o=bind,volume-opt=device=/c/path/to/html \ nginx

La única parte que puede necesitar ajustes son los nombres de ruta de Windows dentro de la VM de Linux que Docker ejecuta en HyperV.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda