2016-11-15 17 views
9

रूट करने के लिए डॉकर-कम्पोज़ बदलते फ़ाइल स्वामित्व द्वारा कंटेनर शुरू किया गया है, मैं एक डॉकर-कंपोज़ फ़ाइल के माध्यम से छह या सात कंटेनर शुरू कर रहा हूं। एक कंटेनर एक बड़ी समस्या पैदा कर रहा है! यहाँ प्रासंगिक अनुभाग है:डॉकर -

services: 
    ... 
    main-app: 
    image: mycompany/sys:1.2.3 
    container_name: "main-app-container" 
    ports: 
    - "8080:8080" 
    - "8009" 
    volumes: 
    - db_data:/var/lib/home/data:rw 
    - /opt/mycompany/sys/config:/opt/mycompany/sys/config:rw 
    networks: 
    - systeminternal 
    hostname: "mylocalhost.company.com" 
volumes: 
    db_data: 
    driver: local 
networks: 
    systeminternal: 

जब main-app-container प्रतिबद्ध कंटेनर में निर्देशिका में से कई में docker-compose up के माध्यम से शुरू कर दिया है (रूट उपयोगकर्ता के रूप में) फाइल सिस्टम विशेषाधिकार सभी रूट करने के लिए बदल रहे हैं! यह उबंटू 14.04, डॉकर 1.12.एक्स पर चल रहा है (सुनिश्चित नहीं है कि कौन सा एक्स)।

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

+0

का उपयोग आप अपनी छवि में उपयोगकर्ता को जोड़ने की कोशिश की है |। मुझे लगता है कि यदि आप रूट के रूप में डॉकर लिखते हैं तो आपको निर्देशिकाओं के अंदर रूट अनुमति होगी क्या आपने यह देखा है http://stackoverflow.com/questions/23544282/what-is-the-best-way-to-manage-permissions-for -docker-साझा-संस्करणों? – Arkowsky

+0

डॉकर को अनुमतियों को बदलना नहीं चाहिए, यह आपके द्वारा चलाए जा रहे ऐप से संबंधित होगा। – BMitch

उत्तर

2

होस्ट-माउंट्स के लिए यह अपेक्षित व्यवहार है, जो कहा गया है कि /opt/mycompany/sys/config के अंदर सबकुछ एक ही यूआईडी/जीआईडी ​​होगा जो फाइलों पर होस्ट पर है - जो डिज़ाइन द्वारा है।

या तो मेजबान पर आपको आवश्यक यूआईडी/ग्रिड में फ़ाइलों को बदलें: chown -R 123:321 /opt/mycompany/sys/config या मेजबान के यूआईडी/ग्रिड का उपयोग करने के लिए अपने कंटेनर को खुश करने के लिए सेटअप करें।

यह डोकर-लिखें सुविधा के साथ कोई संबंध नहीं है, यह उसी तरह हो सकता है जब आप

docker run -v /opt/mycompany/sys/config:/opt/mycompany/sys/config mycompany/sys:1.2.3