मैं डॉकर-कंपोज़ और v3 का उपयोग कर रहा हूं। मैं डोकर में एक मात्रा माउंट करने के लिए कोशिश कर रहा हूँ:डॉकर लिखें - एकाधिक कंटेनर के बीच नामित वॉल्यूम साझा करें
./appdata:/appdata
मैं एक मात्रा के रूप में यह है करने के लिए और उसके बाद कई कंटेनरों से उस मात्रा को संदर्भित करना चाहते हैं। volume configuration reference केवल data-volume:
को नामित वॉल्यूम के रूप में दिखाता है, बिना किसी मूल्य के, इसलिए यह उपर्युक्त जैसा नहीं दिखता है।
services:
nginx:
build: ./nginx/
ports:
- 80:80
links:
- php
volumes:
- app-volume
php:
build: ./php/
expose:
- 9000
volumes:
- app-volume
volumes:
app-volume: ./appdata:/appdata
यह मैं देता है:
ERROR: In file './docker-compose.yml', volume 'app-volume' must be a mapping not a string.
जाहिर है मैं मैं volumes
मुख्य/मान जोड़े को बदलने की जरूरत है, लेकिन मुझे यकीन है कि कैसे इसे बदलने के लिए तो मैं एक मात्रा साझा कर सकते हैं नहीं कर रहा हूँ सेवाओं के बीच।
मैंने volumes_from
भी चेक आउट किया है लेकिन यह प्रभावी रूप से अन्य कंटेनर से विरासत की अनुमति देता है। मैंने किसी अन्य कंटेनर पर volumes_from
का उपयोग किया है जिसमें मैपिंग वे चाहते हैं, लेकिन command: true
सेट के साथ ताकि कंटेनर वास्तव में कभी नहीं चल सके, जो मेरे लिए हैक की तरह लगता है।
मैं यह कैसे कर सकता हूं?
nginx:
volumes:
- ./appdata:/appdata
php:
volumes:
- ./appdata:/appdata
लेकिन वह सिर्फ दोहराव है और है कुछ मैं एक नामित मात्रा मेरे से बचने :-)
लेकिन मेरे उदाहरण में एक मेजबान और एक कंटेनर दो स्थान हैं। मूल रूप से यह इस तरह दिखता था: '- ./appdata:/appdata' लेकिन आपके समाधान के साथ, मैं केवल इन मानों में से एक देख सकता हूं? – Jimbo
दोनों कंटेनर वॉल्यूम AFAIK को लिख सकते हैं।इसलिए यदि आप अपने कंटेनरों में से किसी एक नाम से वॉल्यूम में एक फ़ोल्डर का पर्दाफाश करते हैं - इसे अन्य कंटेनर द्वारा देखा और ओवरराइट किया जा सकता है और इसके विपरीत। यदि यह अभी भी अस्पष्ट है - तो मैं इसे बेहतर उदाहरण देने के लिए अपना उदाहरण कोड पेस्ट करूंगा – Kannaj
यह "सही उत्तर" होना चाहिए। –