[英]Make Docker Swarm use same volumes from Docker-Compose
我有一個包含一些服務docker-compose.yml
文件:
version: '3'
services:
# PostgreSQL
db:
image: postgres:12
volumes:
- postgres_data:/var/lib/postgresql/data/
# MongoDB Server
mongo:
image: mongo:4.2
volumes:
- mongo_data:/data/db
- mongo_data:/data/configdb
volumes:
mongo_data:
mongo_config:
postgres_data:
我一直在生產中使用docker-compose up -d
啟動服務。 但現在我想使用docker stack deploy --compose-file docker-compose.yml mystack
來實現未來的可擴展性。
問題是這些服務現在正在使用新卷。 所以我不能使用所有的數據庫數據。 我怎樣才能讓 Swarm 使用現有的docker-compose
卷?
任何形式的幫助將非常感激。 提前致謝
正如 Kiryl 所指出的,答案是外部卷,但我在下面列出了幾個步驟:
docker-compose.yml
文件以添加具有現有* 卷名稱的external
密鑰。 結果如下:volumes:
mongo_data:
external:
name: existing name...
mongo_config:
external:
name: existing name...
postgres_data:
external:
name: existing name...
docker-compose up -d
開始檢查所有卷是否正常。 然后用docker-compose down
docker stack deploy --compose-file docker-compose.yml mystack
此外, 官方 Docker 論壇中也有同樣的問題,那里有其他有用的解決方案和意見。
考慮使用外部卷
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.