Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Docker: Mount directory from one container to another

I have two docker images. One of the docker image (from first container), when ran, generates some files, which needs to be consumed by the another container.

Can I do this?

like image 277
Ganesh Satpute Avatar asked Oct 19 '15 09:10

Ganesh Satpute


People also ask

Can you share data between docker containers using docker volume?

Persistent access to data is provided with Docker Volumes. Docker Volumes can be created and attached in the same command that creates a container, or they can be created independently of any containers and attached later. In this article, we'll look at four different ways to share data between containers.


2 Answers

Rene's answer works, but you could share data without using the host's directory (container1 ==> container2):

docker run -v /data/myfolder --name container1 image-name-1
docker run --volumes-from container1 image-name-2
like image 171
Manuel J. Garrido Avatar answered Oct 25 '22 03:10

Manuel J. Garrido


Oracle had a an example on their website in 2015 (which is not available any more). Based on this i created

https://github.com/BITPlan/docker-stackoverflowanswers/tree/master/33232991

Dockerfile.data

# Dockerfile that modifies ubuntu to create a data volume container
FROM ubuntu:14.04
RUN mkdir -p /var/www/html
RUN echo "This is the content for file1.html" > /var/www/html/file1.html
RUN echo "This is the content for file2.html" > /var/www/html/file2.html
RUN echo "This is the content for index.html" > /var/www/html/index.html
VOLUME /var/www/html
ENTRYPOINT /usr/bin/tail -f /dev/null

for the data image and

Dockerfile

# Ubuntu image
FROM ubuntu:14.04

for the image to test the use of the other data only volume.

docker build -t bitplan/dataonly:0.0.1 -f Dockerfile.data . 
docker build -t bitplan/dataexample:0.0.1 .

builds these images

and they both show in my images list now:

docker images | grep data

wf@mars:~/source/docker/stackoverflow2>    docker images | grep data
bitplan/dataonly          0.0.1               aa6aeb923f55        9 minutes ago       188.4 MB
bitplan/dataexample       0.0.1               a005e6b7dd01        7 days ago          188.4 MB

running and testing is done with

docker run -d --name html bitplan/dataonly:0.0.1
docker run --volumes-from html bitplan/dataexample:0.0.1 ls /var/www/html

which shows:

0ebb78f209169fb7d281bb6b06851b33af7a98488c3a38cf25ac92fe983fff43
file1.html
file2.html
index.html
like image 35
Wolfgang Fahl Avatar answered Oct 25 '22 01:10

Wolfgang Fahl