[英]Share Docker container storage volume between containers
作為練習,我嘗試設置三個Docker容器。
container1
(作為純存儲量) container2
(Java應用程序) container3
(作為純存儲量) 現在,在使用Apache Camel的container2
運行的Java應用程序應偵聽container1
卷上的文件添加並將其傳輸到container3
卷。
我當時正在考慮在存儲容器上安裝FTP映像,但是我認為它們的卷可以暴露出來。
這個用例的更好方法是什么?
您只需添加指向同一目錄的卷即可:
容器2可以有3個體積:
您的java應用程序可以簡單地用批處理檢查卷2的文件夾,並將文件放在卷3的文件夾中
是的,你是對的。 它們的數量可以被公開,這並不難實現。 例如,您可以嘗試運行下一個准備好的docker-file:
#########################################################################
version: '3.3'
services:
#########################################################################
container-1:
container_name: "test-container1"
image: ubuntu:16.04
volumes:
- "$HOME/data/container-1:/root/data"
command: ["/bin/bash", "-c", "echo 'Hello world!' > \
/root/data/someFileFromContainer-1"]
#########################################################################
container-2:
container_name: "test-container2"
image: ubuntu:16.04
depends_on:
- container-1
volumes:
- "$HOME/data:/root/data"
command: ["/bin/bash", "-c", "/bin/sleep 3s && \
mv /root/data/container-1/someFileFromContainer-1 /root/data/container-3/"]
#########################################################################
container-3:
container_name: "test-container3"
image: ubuntu:16.04
volumes:
- "$HOME/data/container-3:/root/data"
depends_on:
- container-2
command: ["/bin/bash", "-c", "sleep 5s && \
cat /root/data/someFileFromContainer-1"]
#########################################################################
嘗試執行以查看結果(來自在第一個容器/“ Hello world!”中創建的文件中的數據):
docker-compose up -d && docker logs -f test-container3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.