कुछ ऐसा है जो मुझे भ्रमित करता है और मेरे लिए आधिकारिक दस्तावेज़ीकरण में बहुत स्पष्ट नहीं था।
मेरी जानकारी में, तीन . में लगातार वॉल्यूम बनाए जा सकते हैं तरीके।
- कंटेनर पर आह्वान समय पूर्ण पथ सहित (
-v ~/database:/data
):डॉकटर कंटेनर के अंदर उपलब्ध होस्ट से एक बाहरी फ़ोल्डर बनाता है। दोनों इसे संशोधित कर सकते हैं। - कंटेनर पर आह्वान समय वॉल्यूम नाम का उपयोग करना (
-v datamysql:/data
):एक वॉल्यूम बनाता है जो कंटेनर के अंदर लगातार उपलब्ध होता है। यदि यह अस्तित्व में नहीं है तो इसे बनाया गया है। आप उन्हेंdocker volume ls
. के साथ नाम से सूचीबद्ध कर सकते हैं . आंतरिक रूप से, इसे/var/lib/docker/volumes/ae4445f7c9317a22fe84726fb894c47754f38a7fd150c00fd877024889968750/_data
जैसी जगह पर स्टोर किया जाएगा। । - कंटेनर पर निर्माण समय (
VOLUME ["/database/data"]
डॉकरफाइल में)।docker run
. का हर आह्वान एक नया वॉल्यूम बनाएगा जो कंटेनर को हटाने पर भी बना रहेगा। यह भ्रमित करने वाला हो सकता है क्योंकि बाद के आह्वानों का परिणाम भिन्न होगा वॉल्यूम बनाए जा रहे हैं जिनका पुन:उपयोग नहीं किया जाएगा।
आप नामित (दूसरा मामला) और अनाम (तीसरा मामला) दोनों संस्करणों को
. के साथ सूचीबद्ध कर सकते हैं$ docker volume ls
DRIVER VOLUME NAME
local 064593b3e65977097d4d0c8402a6c633f1af69be2937bf118678ab8f97ee9a7e
local 4753ad0437d13e54c76d9c34a30a1843396a1866a0cf9237d500fdcca0d78c5f
local 8d7a35354f666b2e8a26866a35bbae36bb9601701d4c6b505ab8ce6629f69415
local db48eefe8f189b36107ca9c4eebb792690590ab0ba055e7e4e2c9adfd1765b7e
local datamysql
आप docker inspect mycontainer
. का उपयोग करके कंटेनर के वॉल्यूम का सटीक स्थान देख सकते हैं
{
"Type": "volume",
"Name": "8d7a35354f666b2e8a26866a35bbae36bb9601701d4c6b505ab8ce6629f69415",
"Source": "/media/USBdrive/docker/volumes/8d7a35354f666b2e8a26866a35bbae36bb9601701d4c6b505ab8ce6629f69415/_data",
"Destination": "/var/lib/mysql",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
},
अप्रयुक्त वॉल्यूम को हटाना आसान हो सकता है (तीसरे मामले के लिए, विशेष रूप से)।
$ docker volume prune
WARNING! This will remove all volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
Deleted Volumes:
4753ad0437d13e54c76d9c34a30a1843396a1866a0cf9237d500fdcca0d78c5f
Total reclaimed space: 205MB
क्योंकि आपने VOLUME
. का उपयोग किया है आपके डॉकरफाइल में निर्देश, आप तीसरे मामले में हैं। फ़ाइल देखने के लिए अपने कंटेनर का निरीक्षण करें, और यदि आप डेटा को बनाए रखने के लिए बार-बार सत्र चाहते हैं तो कमांड लाइन से वॉल्यूम निर्दिष्ट करें।