2015-04-24 14 views
6

È possibile montare un volume da un contenitore in un altro contenitore su un percorso diverso? Per esempio.Montaggio di un volume contenitore in un altro contenitore su un percorso diverso

  • contA espone un volumen /source
  • il montaggio in un altro contenitore docker run --volumes-from contA -v /source/somedir:/etc/otherdir

Sto cercando di usare questo con docker-compose e jwilder/nginx-proxy:

finestra mobile-compose.yml

myapp: 
    build: . 
    command: ./run.sh 
    volumes: 
    - /source 

nginx: 
    image: jwilder/nginx-proxy 
    volumes_from: 
    - myapp 
    volumes: 
    - /source/vhost.d:/etc/nginx/vhost.d:ro 
    - /var/run/docker.sock:/tmp/docker.sock 
    links: 
    - myapp:myapp 

Se sto cercando così, non riesco a vedere i miei file in /etc/nginx/vhost.d:

$ docker-compose run nginx bash         
[email protected]:/app# ls -l 
total 32 
-rw-r--r-- 1 root root 1076 Apr 9 22:10 Dockerfile 
-rw-r--r-- 1 root root 1079 Apr 9 22:10 LICENSE 
-rw-r--r-- 1 root root 129 Apr 9 22:10 Procfile 
-rw-r--r-- 1 root root 8385 Apr 9 22:10 README.md 
-rw-r--r-- 1 root root 5493 Apr 9 22:10 nginx.tmpl 
[email protected]:/app# ls -l /etc/nginx/vhost.d 
total 0 
[email protected]:/app# ls -l /source/nginx/ 
total 8 
-rw-r--r-- 1 1000 staff 957 Apr 24 07:17 dockerhost.me 

risposta

1

Non sembra possibile, considerando la sintassi - v /host/path:/container/path è riservato per il montaggio di un percorso da host (e non da un altro contenitore)

che ti lascia con la possibilità di aggiungere al vostro secondo contenitore un link simbolico da /etc/otherdir a /source/somedir (che esisterà a causa della direttiva --volumes-from contA)

+0

Grazie per la risposta. Ok, ma questo significherebbe che devo "modificare" il mio secondo contenitore, ciò che è possibile. Ma speravo di non doverlo :) – sspross

+0

@sspross modifica il tuo secondo contenitore Dockerfile in effetti. Ma se è già in esecuzione, è sufficiente aggiungere il link simbolico dinamicamente ('docker exec'). – VonC

+0

Ok grazie, non lo sapevo. Ma se sto usando un'orchestrazione di implementazione come tutum, non esiste un modo "facile" per eseguire "docker exec" in un punto "buono" ... Forse dovrei creare un'altra immagine basata su jwilder/nginx-proxy per il mio progetto ... – sspross

Problemi correlati