2016-07-14 25 views
5

के साथ ईबीएस वॉल्यूम का उपयोग कैसे करूं, मैंने एक ईबीएस वॉल्यूम बनाया, संलग्न किया और इसे मेरे कंटेनर इंस्टेंस में घुमाया। कार्य परिभाषा खंड में मैंने आरोहित निर्देशिका के साथ वॉल्यूम स्रोत पथ सेट किया है। कंटेनर डेटा घुड़सवार निर्देशिका में बनाई गई मधुमक्खी नहीं है, घुड़सवार ईबीएस से बाहर की सभी अन्य निर्देशिका ठीक से काम करती है।मैं ईसीएस कंटेनर

उद्देश्य कंटेनर से डेटा को सहेजना और इस वॉल्यूम बैकअप के साथ इसका उद्देश्य है।

क्या इस कंटेनर को मेरे कंटेनर के साथ उपयोग करने का कोई तरीका है? या वॉल्यूम्स और बैकअप के साथ काम करने का एक बेहतर तरीका है।

EDIT: यह एक यादृच्छिक डॉकर छवि के साथ परीक्षण किया गया था जो इसे वॉल्यूम निर्दिष्ट करता था और मुझे एक ही समस्या का सामना करना पड़ा। मैं इसे डॉकर सेवा को पुनरारंभ करने के लिए काम करता हूं लेकिन मैं अभी भी डॉकर को पुनरारंभ किए बिना समाधान ढूंढ रहा हूं।

एक मात्रा निर्देशिका

"HostConfig": { 
    "Binds": [ 
    "/mnt/data:/data" 
], 
... 
"Mounts": [ 
    { 
    "Source": "/mnt/data", 
    "Destination": "/data", 
    "Mode": "", 
    "RW": true, 
    "Propagation": "rprivate" 
    } 
], 

निर्देशिका प्रदर्शित करता है कि घुड़सवार EBS के साथ एक कंटेनर का निरीक्षण:

$ ls /mnt/data/ 
lost+found 

एक मात्रा निर्देशिका कि घुड़सवार EBS नहीं है के साथ एक कंटेनर का निरीक्षण

"HostConfig": { 
    "Binds": [ 
    "/home/ec2-user/data:/data" 
    ], 
... 
"Mounts": [ 
    { 
    "Source": "/home/ec2-user/data", 
    "Destination": "/data", 
    "Mode": "", 
    "RW": true, 
    "Propagation": "rprivate" 
    } 
] 

निर्देशिका प्रदर्शित करता है:

$ ls /home/ec2-user/data 
databases dbms 
+0

मुझे नहीं पता कि आप क्या हासिल करने की कोशिश कर रहे हैं, लेकिन मैं एक ईबीएस स्नैपशॉट बनाना पसंद करता हूं, यदि आप चाहें तो इसे शेड्यूल कर सकते हैं और यदि कुछ होता है तो आपके सभी वीएमएस कॉन्फ़िगर किए गए हैं जैसे आपने पहले किया था भविष्य में बहुत सारे काम, इसके अलावा आप इस स्नैपशॉट को अन्य क्षेत्रों में स्थानांतरित कर सकते हैं। –

+0

@FernandoZamperin हाँ, मैं इस ईबीएस के लिए स्नैपशॉट शेड्यूल करना चाहता हूं, लेकिन पहले मुझे यह चाहिए कि कंटेनर इसे ठीक से उपयोग करता है –

+0

शायद यह मदद करता है: http://stackoverflow.com/questions/28792272/attaching-and-mounting-existing-ebs -वॉल्यूम-टू-ec2-instance-filesystem-issue –

उत्तर

2

यह आप संभावित क्या करना चाहते हैं क्या की तरह लगता है एडब्ल्यूएस EC2 Launch Configurations का इस्तेमाल करते हैं है। लॉन्च कॉन्फ़िगरेशन का उपयोग करके, आप ईबीएस वॉल्यूम्स को लॉन्च पर अपने इंस्टेंस से बनाया और संलग्न कर सकते हैं। यह डॉकर एजेंट से पहले होता है और बाद के कार्यों को शुरू किया जाता है।

अपने प्रक्षेपण के विन्यास के रूप में, आप की तर्ज पर कुछ के साथ विवरण भी कॉन्फ़िगर तहत उपयोगकर्ता डेटा अद्यतन करने के लिए चाहता हूँ:

mkdir /data; 
mkfs -t ext4 /dev/xvdb; 
mount /dev/xvdb /data; 
echo '/dev/xvdb /data ext4 defaults,nofail 0 2' >> /etc/fstab; 

फिर, इतने लंबे समय के अपने कंटेनर के रूप में होस्ट पर /data तक पहुंचने के लिए सेटअप, सब कुछ पहले ही काम करेगा।

बोनस: यदि आप ईसीएस क्लस्टर का उपयोग कर रहे हैं, तो मुझे लगता है कि आप पहले से ही क्लस्टर में शामिल होने के लिए लॉन्च कॉन्फ़िगरेशन का उपयोग कर रहे हैं। यदि नहीं, तो आप नए उदाहरणों स्वतः ही जोड़ सकते हैं, जैसे कुछ का उपयोग कर: --env=ECS_CLUSTER=your-cluster-here

आशा इस मदद करता है:

#!/bin/bash 
docker pull amazon/amazon-ecs-agent 
docker run --name ecs-agent --detach=true --restart=on-failure:10 --volume=/var/run/docker.sock:/var/run/docker.sock --volume=/var/log/ecs/:/log --volume=/var/lib/ecs/data:/data --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro --volume=/var/run/docker/execdriver/native:/var/lib/docker/execdriver/native:ro --publish=127.0.0.1:51678:51678 --env=ECS_LOGFILE=/log/ecs-agent.log --env=ECS_AVAILABLE_LOGGING_DRIVERS=[\"json-file\",\"syslog\",\"gelf\"] --env=ECS_LOGLEVEL=info --env=ECS_DATADIR=/data --env=ECS_CLUSTER=your-cluster-here amazon/amazon-ecs-agent:latest 

विशेष रूप से है कि बिट में, तो आप इस हिस्से को संपादित करना चाहते हैं।

संबंधित मुद्दे