Investigamos por todo internet para así traerte la respuesta a tu duda, en caso de alguna difcultad deja tu inquietud y te contestamos con mucho gusto, porque estamos para servirte.
Solución:
En versiones recientes de la ventana acoplable, los volúmenes con nombre reemplazan a los contenedores de datos como la forma más sencilla de compartir datos entre contenedores.
docker volume create --name myshare
docker run -v myshare:/shared task1
docker run -v myshare:/shared -p 8080:8080 task2
...
Esos comandos configurarán un volumen local y el -v myshare:/shared
el argumento hará que ese recurso compartido esté disponible como la carpeta /shared
dentro de cada uno de cada contenedor.
Para expresar eso en un archivo compuesto:
version: '2'
services:
task1:
build: ./task1
volumes:
- 'myshare:/shared'
task2:
build: ./task2
ports:
- '8080:8080'
volumes:
- 'myshare:/shared'
volumes:
myshare:
driver: local
Para probar esto, hice un pequeño proyecto:
- docker-compose.yml (above)
- task1/Dockerfile
- task1/app.py
- task2/Dockerfile
Usé el servidor http del nodo como task2/Dockerfile
:
FROM node
RUN npm install -g http-server
WORKDIR /shared
CMD http-server
y task1/Dockerfile
utilizado python:alpine
para mostrar dos pilas diferentes de escritura y lectura.
FROM python:alpine
WORKDIR /app
COPY . .
CMD python app.py
aquí está task1/app.py
import time
count = 0
while True:
fname = '/shared/.txt'.format(count)
with open(fname, 'w') as f:
f.write('content '.format(count))
count = count + 1
time.sleep(10)
Tome esos cuatro archivos y ejecútelos a través de docker compose up
en el directorio con docker-compose.yml
– luego visite $DOCKER_HOST:8080 para ver una lista de archivos constantemente actualizada.
Además, estoy usando la versión docker 1.12.0
y componer versión 1.8.0
pero esto debería funcionar para algunas versiones anteriores.
Y asegúrese de consultar los documentos de la ventana acoplable para obtener detalles que probablemente me he perdido aquí:
https://docs.docker.com/engine/tutorials/dockervolumes/
Para mí, la mejor manera de copiar un archivo desde o hacia un contenedor es usar docker cp
por ejemplo: si quieres copiar schema.xml
desde apachenuez contenedor para Solr contenedor entonces:
-
docker cp apacheNutch:/root/nutch/conf/schema.xml /tmp/schema.xml
servidor/solr/conjuntos de configuración/nutch/
-
docker cp /tmp/schema.xml
solr:/opt/solr-8.1.1/server/solr/configsets/nutch/conf
Si te gustó nuestro trabajo, puedes dejar un escrito acerca de qué te ha impresionado de esta noticia.