1、共用宿主機的目錄給容器
docker run -d --name=test -v /opt/test:/usr/databases docker-test
test是容器的名字,需唯一;-v表示建立一個資料卷並掛載到容器裡,樣本表示把宿主機的/opt/test目錄掛載到容器的/usr/databases目錄下;docker-test是鏡像的名字
2、有時候需要共用容器的volume,則需採用其他方式來訪問
1)採用–volumes-from
可以使用最小的鏡像busybox來幫忙實現
1.docker run --name=storedata -v /data:/usr/data busybox true
定義一個名稱為storedata的目錄映射,樣本表示把宿主機的/data目錄掛載到容器的/usr/data目錄下。其他的容器就可以採用–volumes-from來使用該目錄
docker run -d --name=test1 --volumes-from storedata docker-test
docker run -d --name=test2 --volumes-from storedata docker-test
2)採用ln連結的方式把不同目錄掛載到同一個目錄下
ln -s /data /opt/es1/
ln -s /data /opt/es2/
樣本在/opt/es1/和/opt/es2/目錄下都產生了一個指向/data目錄的捷徑,因此訪問/opt/es1/data和/opt/es2/data都是訪問的/data目錄
搞定了連結,現在就可以直接採用-v來映射目錄了
docker run -d --name=test3 -v /opt/es1/data:/usr/data docker-test
docker run -d --name=test4 -v /opt/es2/data:/usr/data docker-test
這樣,在test3和test4容器內部操作/usr/data目錄都是操作的宿主機的/data目錄