2016-02-19 35 views
7

Sto usando finestra mobile cassetta degli attrezzi in Windows e cercando di montare una cartella di Windows in un file di finestra mobile-compose.yml come questo:Docker Compose Mount finestra delle cartelle

nginx: 
    image: nginx:latest 
    container_name: test_server 
    ports: 
    - "80:80" 
    volumes: 
    - /sss:/c/data/www:ro 
    environment: 
    - VIRTUAL_HOST=test.local 

Il mio obiettivo è quello di Monte C: \ data \ www all'immagine VM boot2docker che è già stata creata dagli strumenti docker e quindi da lì al contenitore nginx al suo interno.

Purtroppo non funziona, ottengo una cartella sss all'interno dell'immagine boot2docker ma è vuota senza il targeting per i miei dati di Windows.

Cosa sto facendo male? C'è qualche pratica migliore per utilizzare finestra mobile in finestre mentre si sta sviluppando (quindi è necessario condividere il codice tra le finestre, finestra mobile vm (boot2docker) ei contenitori docker)

Grazie mille,

Nick

+0

Ricordate che con boot2docker, ci sono due livelli di astrazione: una macchina virtuale Linux, quindi il motore Docker in esecuzione in quel VM. Docker Compose non sa nulla del mondo al di fuori della VM in cui è in esecuzione Docker e non può, ad esempio, configurare le cartelle condivise di VirtualBox. C'è qualche discussione su questo nella documentazione di boot2docker: https://github.com/boot2docker/boot2docker#folder-sharing –

risposta

9

Il mio obiettivo è quello di Monte C:\data\www a boot2docker immagine VM

da "Manually sharing directory as docker volume mounting point":

È necessario:

  • modificare la VirtualBox VM (assicurarsi che sia fermato prima):

    VBoxManage sharedfolder add <machine name/id> --name <mount_name> --hostpath <host_dir> --automount 
    # in your case 
    /c/Program\ Files/Oracle/VirtualBox/VBoxManage.exe sharedfolder add default --name www --hostpath 'C:\data\ww' --automount 
    
  • aggiungere un automount to your boot2docker VM: Modifica

    • /creare (come root) /mnt/sda1/var/lib/boot2docker/bootlocal.sh, (sda1 potrebbe essere diverso per voi)
    • Aggiungere

      mkdir -p <local_dir> 
      mount -t vboxsf -o defaults,uid=`id -u docker`,gid=`id -g docker` <mount_name> <local_dir 
      

(potrebbe essere necessario add the umask as in here)

+0

Quindi in docker-compose.yml i volumi non hanno nulla a che fare con Windows ma il suo mount da linux vm a solo contenitori? –

+0

Sì, operano solo nel mondo Linux di boot2docker – VonC

+0

Ho un problema serio, la mia cartella di montaggio sta mostrando OK alla macchina virtuale boot2docker ma se aggiungo o modifica un file da Widows questo file non viene aggiornato alla macchina VM. ? –