[英]Docker change location of named volumes
我有一個我無法理解的問題。 我正在使用 docker 來運行某些容器,但我至少有一個卷有問題,我不想問是否有人可以提示我做錯了什么。 我以 Nifi-Ingestion 為例,但它會影響更多的容器體積。
首先說一下我使用的版本:
現在,讓我們在我的工作 docker-compose-file 中顯示卷:
在我的容器中,它的配置如下:
volumes:
- nifi-ingestion-conf:/opt/nifi/nifi-current/conf
在我的 docker-compose 文件下面,它被定義為一個普通的命名卷:
volumes:
nifi-ingestion-conf:
這是 docker-compose 的一個片段,我想開始工作
在我的容器中,在這種情況下配置如下(將我的 STORAGE_VOLUME_PATH 定義為 /mnt/storage/docker_data):
volumes:
- ${STORAGE_VOLUME_PATH}/nifi-ingestion-conf:/opt/nifi/nifi-current/conf
在底部,我想有一些事情要做,但我不知道我需要在這里做什么。 在這種情況下,它與工作中的 docker-compose 相同:
volumes:
nifi-ingestion-conf:
那么,現在我的問題是什么?
我有兩個 docker-compose 文件。 一個使用普通的命名卷,一個使用我的額外掛載路徑中的卷。 當我運行容器時,卷的工作方式似乎有所不同,因為文件是用第一種風格編寫的,而不是第二種風格。 我的掛載路徑是在第二個版本中生成的,因此 .env 文件中的環境變量沒有任何問題。
提示:/mnt/storage/docker_data 是一個 NFS 掛載,但我的機器擁有該共享的全部權限。
這是我掛載該卷的 fstab 條目(也許我必須設置其他選項):
10.1.0.2:/docker/data /mnt/storage/docker_data nfs auto,rw
更大的片段
如果 docker-compose 是一個更大的片段(我需要剪切和刪除有信心的數據,我的問題不是它不起作用,只是音量不同。這一卷的所有內容都在代碼中。):
version: "3"
services:
nifi-ingestion:
image: my image on my personal repo
container_name: nifi-ingestion
ports:
- 0000
labels:
- app-specivic
volumes:
- ${STORAGE_VOLUME_PATH}/nifi-ingestion-conf:/opt/nifi/nifi-current/conf
#working: - nifi-ingestion-conf:/opt/nifi/nifi-current/conf
environment:
- app-specivic
networks:
- cnetwork
volumes:
nifi-ingestion-conf:
networks:
cnetwork:
external: false
ipam:
driver: default
config:
- subnet: 192.168.1.0/24
這里的 env (只有我們正在使用的值)
STORAGE_VOLUME_PATH=/mnt/storage/docker_data
如果我正確理解了您的問題,您想知道為什么以下 docker-compose 片段對您有用
version: "3"
services:
nifi-ingestion:
volumes:
- nifi-ingestion-conf:/opt/nifi/nifi-current/conf
volumes:
nifi-ingestion-conf:
以下 docker-compose 片段對您不起作用
version: "3"
services:
nifi-ingestion:
volumes:
- ${STORAGE_VOLUME_PATH}/nifi-ingestion-conf:/opt/nifi/nifi-current/conf
使它們不同的是您使用卷的方式。 您需要區分掛載主機路徑和掛載命名卷
您可以將主機路徑掛載為單個服務定義的一部分,無需在頂級
volumes
鍵中定義它。但是,如果您想跨多個服務重用一個卷,則在頂級
volumes
鍵中定義一個命名卷。
命名卷由 docker 管理
如果您使用尚不存在的卷啟動容器,Docker 會為您創建卷。
另外,建議您閱讀此答案
更新:您可能還想了解docker nfs 卷
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.