Back to Question Center
0

मैन्युअल रूप से WordPress के लिए डॉक करने वाले कंटेनरों को कैसे बनाएं            मैन्युअल रूप से WordPress के लिए डॉकर्स कंटेनरों को कैसे तैयार करें: PluginsSecurityWP Semalt

1 answers:
मैन्युअल रूप से वर्डप्रेस के लिए डॉक करने वाले कंटेनर कैसे बनाएं

मेरे पिछले लेख में, हमने यह बताया कि किस प्रकार Semaltेट है और कैसे उठो और कुछ आज्ञाओं के साथ चल रहा है हालांकि, हमने अभी तक उपयोगी कुछ भी नहीं किया है। इस लेख में, मील का उपयोग करके वर्डप्रेस पर्यावरण प्राप्त करने के कई तरीके हैं, मैं आपको दिखाता हूँ कि वर्डप्रेस के साथ काम करने के लिए साम्बाटल कंटेनरों मैन्युअल रूप से कैसे स्थापित करें। यदि आप सेमील्ट में एक त्वरित परिचय चाहते हैं, तो आप यहां पहले लेख पर वापस कूद सकते हैं।

MySQL सेट करना

हर वर्डप्रेस इंस्टॉलेशन को एक MySQL डाटाबेस की आवश्यकता है ऐसा करने के लिए, हम सेमील्ट हब पर पहुंचते हैं और एक MySQL छवि ढूंढते हैं।

डॉकर टीम पहले से ही हमारे लिए उपयोग करने के लिए एक MySQL छवि तैयार कर चुकी है। टर्मिनल पर किसी भी कमांड को चलाने से पहले, इस चित्र के दस्तावेज को पढ़ना सुनिश्चित करें। लिखित के समय नवीनतम संस्करण 5 है। 7. मिमल, नवीनतम टैग नाम 5 है। 6. एक छवि का नवीनतम संस्करण किसी भी पिछले संस्करण के लिए हो सकता है, लेकिन इसकी स्थिर स्थिति में एक है।

How to Manually Build Docker Containers for WordPressHow to Manually Build Docker Containers for WordPressRelated Topics:
PluginsSecurityWP Semalt

इस छवि का उपयोग कर एक कंटेनर सेटअप करने के लिए बुनियादी कमांड है:

    डॉकर रन --name wordpressdb -d mysql: 5 7    

(2 9)

यदि आपके पास पहले से छवि की प्रतिलिपि नहीं है, तो डॉकर डॉकर हब से आपके लिए इसे खींच देगा। हम जानते हैं कि अब तक --name हमारे कंटेनर को एक नाम देता है, -डी यह सुनिश्चित करता है कि हमारे कंटेनर पृष्ठभूमि में चलते हैं

यदि आप डॉकर पीएस चलाते हैं तो आप देखेंगे कि वर्डप्रेस डीबी कंटेनर नहीं चल रहा है। यह हालांकि चलना चाहिए। रन डॉकर लॉग वर्डप्रेस डीबी और आप इस तरह एक संदेश देखेंगे:

    त्रुटि: डेटाबेस अनिर्धारित नहीं है और MYSQL_ROOT_PASSWORD सेट नहीं हैक्या आप जोड़ना भूल गए Ie MYSQL_ROOT_PASSWORD = । । ?    

ऐसा क्यों है? ऐसा इसलिए है क्योंकि हमने पहली बार कंटेनर का निर्माण करते समय तर्क के रूप में रूट पासवर्ड नहीं दिया था तो चलो ऐसा ही करते हैं सबसे पहले, हमें कंटेनर को हटाने की जरूरत है जिसे हमने नाम से बनाया है wordpressdb डॉकर आरएम वर्डप्रेस डीबी का उपयोग करते हुए। इसका कारण यह है कि नया कंटेनर उसी नाम का उपयोग करेगा और उसी नाम के साथ दो कंटेनर नहीं हो सकते।

तो हम अपने कंटेनर को दोबारा बनाते हैं। जब हम पहले कंटेनर बनाते हैं तो हमें एक पर्यावरण चर पारित करने की आवश्यकता है इसे इस तरह दिखना चाहिए:

    डॉकर रन --name wordpressdb -e MYSQL_ROOT_PASSWORD = password -d mysql: 5 7    

-e MYSQL_ROOT_PASSWORD = पासवर्ड एक पर्यावरण चर है जब कंटेनर को छवि से बनाया जा रहा है, तो यह इस वैरिएबल को पढ़ता है और रूट उपयोगकर्ता के लिए निर्दिष्ट मान के लिए पासवर्ड सेट करता है, जो इस मामले में पासवर्ड है।

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

आप अपने कंटेनर में अन्य पर्यावरण चर को भी पारित कर सकते हैं, आप MySQL छवि दस्तावेज़ीकरण पर पूरी सूची पा सकते हैं। दूसरा उदाहरण:

    डॉकर रन --नाम वर्डप्रेस डीबी -ई MYSQL_ROOT_PASSWORD = पासवर्ड- i MYSQL_DATABASE = वर्डप्रेस-डी माइस्स्क: 5। 7    

यदि आपने पिछले कंटेनर को नाम वर्डप्रेस डीबी से निकालने की कोशिश की है, तो यह संभवतः विफल हो गया है। ऐसा इसलिए क्योंकि कंटेनर अभी भी पृष्ठभूमि में चल रहा था। आप पहले से चल रहे कंटेनर को रोक सकते हैं और फिर इसे हटा सकते हैं या इसे हटा सकते हैं:

    डॉकर आरएम-एफ वर्डप्रेस डीबी    

यदि हम MYSQL_DATABASE का उपयोग करते हैं, तो यह सुनिश्चित करता है कि उस नाम के साथ डेटाबेस बनाया गया है इस तरह, हमें यह सुनिश्चित करने के लिए पता है कि डाटाबेस और जड़ पासवर्ड का नाम क्या है। आप पासवर्ड और डेटाबेस से दूसरे उपयोगकर्ता भी बना सकते हैं.

यदि आप यह जानना चाहते हैं कि यह कंटेनर कैसे बनाया गया है, तो डॉकरफाइल को देखें यह डेबियन विहेजी का उपयोग करता है और कंपाटेर को बेस कमांड का उपयोग करता है। यह इसे रिपॉजिटरी से खींचता है और फिर शुरू होता है mysqld । जब इस चित्र से आपके कंटेनर इमारत (9 8), पहली बार यह बिल्ड फ़ाइल के आदेशों को निष्पादित करेगा। जब (9 7) कंटेनर का उपयोग करते हुए, यह केवल exec mysqld होगा।

How to Manually Build Docker Containers for WordPressHow to Manually Build Docker Containers for WordPressRelated Topics:
PluginsSecurityWP Semalt

अब हमारे पास चल रहे MySQL कंटेनर है, हम एक कंटेनर चला सकते हैं जो वर्डप्रेस चलाता है।

एक वर्डप्रेस कंटेनर का निर्माण

इस कंटेनर के लिए हम PHP छवि का उपयोग करेंगे। तीन प्रकार के PHP छवियां हैं, हमें केवल पीएचपी छवि की आवश्यकता है जो अपाचे के साथ आता है।

    डॉकर रन --नाम वर्डप्रेस php: 5 6-अपाचे    

बिना -डी विकल्प, यह पृष्ठभूमि में चलने के लिए अभ्यस्त होता है, इसके बजाय यह आपको कंटेनर को आउटपुट करने वाला सब कुछ दिखाएगा (उसी तरह से डॉकर लॉग [कंटेनर_नाम] करता है)।

आउटपुट से आप देख सकते हैं कि उसने स्वतः उस कंटेनर को एक आईपी सौंप दिया है। मेरे मामले में यह 172. 17 - computer trade in. 0. 35 यदि आप इस पते पर अपने ब्राउज़र का उपयोग करते हैं, तो आपको एक प्रतिबंधित त्रुटि मिलेगी। ऐसा क्यों है? ऐसा इसलिए है क्योंकि / var / www / html फ़ोल्डर (कंटेनर फाइल सिस्टम पर) में कुछ नहीं है, यह खाली है

तो हम उस फ़ोल्डर में फाइल कैसे डाल सकते हैं? डिफ़ॉल्ट रूप से, वह फ़ोल्डर कंटेनर के अंदर रहता है, और यह अदृश्य है। हालांकि, लंबे समय तक नहीं ( डॉकर आरएम वर्डप्रेस को मत भूलना)। सबसे पहले, एक फ़ोल्डर बनाएं और उसके अंदर नेविगेट करें (पुराना वर्डप्रेस कंटेनर को हटाने के लिए मत भूलना)।

    डॉकर रन --नाम वर्डप्रेस -V "$ PWD /": / var / www / html php: 5 6-अपाचे    

-v का उपयोग दो फ़ोल्डरों के मानचित्रण के लिए किया जाता है। पहला हिस्सा आपके ओएस पर फ़ोल्डर है और दूसरा कंटेनर फाइल सिस्टम में फ़ोल्डर है यूनिक्स जैसी सिस्टम पर, "$ PWD" उस स्थान को वापस देता है जहां टर्मिनल कमांड चलाता है। जब आप पहली बार टर्मिनल शुरू करते हैं, तो आप अपनी होम डाइरेक्टरी में होंगे। विंडोज के बराबर है सीडी पीडब्लूडी के बारे में अधिक जानकारी यहां पाई जा सकती है।

तो हमारे उदाहरण में, पहला भाग "$ पीडब्लूडी /" है, जो स्थानीय निर्देशिका है और दूसरा भाग है / var / www / html / -वी पूर्ण पथ होने के लिए दोनों की आवश्यकता है। हालांकि, अगर हम हमारी कार्य निर्देशिका में देखते हैं, तो हम देख सकते हैं कि कोई भी फाइल मौजूद नहीं है। सूचकांक नामक एक फ़ाइल बनाएं php जिसमें निम्न शामिल हैं:

      ;?>     

इसे अपने ब्राउज़र में फिर से देखें। इस समय आप देखेंगे कि आईपी पता बदल गया है क्योंकि हमने एक नया कंटेनर बनाया है। समय-समय पर हम एक नया कंटेनर बनाते हैं, यह आईपी बदलता है। यदि आप अपने ब्राउज़र में उस संदेश को देखते हैं तो आपने सबकुछ ठीक किया है।

देखें, अगर हम वर्डप्रेस फाइलें डालते हैं तो यह क्या होता है। डॉकर स्टॉप वर्डप्रेस का उपयोग करके कंटेनर को बंद करें। WordPress से वर्डप्रेस की नवीनतम प्रतिलिपि को पकड़ो संगठन और परियोजना फ़ोल्डर के अंदर फ़ाइलों को छोड़ दें डॉकर स्टार्ट वर्डप्रेस का उपयोग करके कंटेनर फिर से शुरू करें। इसके अलावा, ध्यान दें कि आपको शुरू में फ़ाइलों को पठनीय बनाने की आवश्यकता होगी। आप chmod-R 777 प्रोजेक्टफ़ोल्डर * निक्स सिस्टम पर चला सकते हैं यदि आप पृष्ठ पुनः लोड करते हैं, तो आपका ब्राउज़र आपको यह बताएगा कि:

    आपकी PHP स्थापना MySQL एक्सटेंशन लापता है जो कि वर्डप्रेस द्वारा आवश्यक है।     

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

डॉकफेर नाम की एक नई फ़ाइल बनाएं:

हम php: 5 का उपयोग करना चाहते हैं 6-अपाचे छवि

    Php से: 5 6-अपाचे    

तब हम माइस्कीली एक्सटेंशन को स्थापित करेंगे.

    सीएमडी ["एपाचे 2-अग्रभूमि"]    

मिमल बिल्ड फाइलें हम चित्र बना सकते हैं। इस छवि को जमा करें, हम कंटेनर का निर्माण करते हैं।

    डॉकर बिल्ड -टीपीपीएसटीएमआईएसक्यूएल     

-टी का उपयोग एक रिपॉज़िटरी नाम देने के लिए किया जाता है। डॉकर को बताता है कि डॉकरफाइल कहाँ स्थित है। जैसा डॉकरफाइल कार्यशील निर्देशिका में स्थित है, डॉकर्स को बताता है कि यह कार्यशील निर्देशिका में है।

यदि आप डॉकर छवियों के साथ छवियों की जांच करते हैं, तो आपको अब टैग के साथ एक नई छवि दिखाई देगी (क्योंकि हमने इस चित्र के लिए एक टैग निर्दिष्ट नहीं किया है)। अब कंटेनर को इस चित्र के साथ इस छवि के साथ बनाएं जैसे हमने पीएचपी 5 के साथ किया। 6-अपाचे छवि

    डॉकर रन --नाम वर्डप्रेस -V "$ PWD /": / var / www / html phpwithmysql    

कंटेनरों आईपी के लिए अपने ब्राउजर को जमा करें और आप ऐसा कुछ देखेंगे:

(22 9)

यदि आप इसे दूर कर चुके हैं, तो आपने सबकुछ ठीक किया है। अब हमें एक डेटाबेस के साथ वर्डप्रेस लिंक करना होगा। यह वर्डप्रेस के 5 मिनट के प्रसिद्ध और अधिक जटिल से बहुत दूर है, लेकिन आप लंबे समय में Semaltट के लाभों को देख पाएंगे।

तो हम कैसे डेटाबेस के साथ वर्डप्रेस लिंक करते हैं? सबसे पहले हमें एक कंटेनर wordpressdb ) के साथ वर्डप्रेस कंटेनर को लिंक करने की आवश्यकता है। यह दो कंटेनरों को जोड़ने के माध्यम से किया जा सकता है लिंकिंग पर अधिक जानकारी यहां पाई जा सकती है।

    डॉकर रन --नाम वर्डप्रेस --लिंक वर्डप्रेस डीबी: एमईएसक्यूएल-वी "$ पीडब्लूडी /": / var / www / html phpwithmysql    

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

अब कंटेनर (नया आईपी) के आईपी का प्रयोग करके अपने ब्राउज़र पर जाएं। डेटाबेस के लिए जानकारी भरें और व्यवस्थापक पैनल में लॉगिन करें। यदि आप एक नई थीम स्थापित करने का प्रयास करते हैं (जो कि फाइल सिस्टम में परिवर्तन करने की कोशिश करेंगे), तो आप ऐसा कुछ देखेंगे:

(25 9)

ऐसा क्यों है? ऐसा इसलिए है क्योंकि अपाचे चलाने वाला उपयोगकर्ता फाइल सिस्टम पर लिखने का उपयोग नहीं करता है यह वह जगह है जहां चीजें थोड़ा मुश्किल हो जाती हैं हमें phpwithmysql छवि का एक नया संस्करण बनाने की आवश्यकता है अपने डॉकरफ़ाइल पर जाएं और इसे देखने के लिए इसे संशोधित करें:

    Php से: 5 6-अपाचेरन डॉकर- php-ext-install mysqliकॉपी प्रवेश बिंदु sh / entrypoint शरन 777 / एंटिपॉइंट शएंट्रीपॉइंट ["/ प्रविष्टपॉइंट। श"]सीएमडी ["एपाचे 2-अग्रभूमि"]    

हमने प्रविष्टि का निर्माण नहीं किया है अभी तक फ़ाइल है, लेकिन हम इसे जल्द ही करेंगे। प्रतिलिपि प्रतियां प्रवेश बिंदु कंटेनर के अंदर sh से / chmod 777 / प्रविष्टि बिंदु sh उस फ़ाइल को निष्पादन योग्य बनाता है। और अंत में एन्ट्रिपिनएन्ट उस फ़ाइल को निष्पादित करता है। अब प्रवेश बिंदु बनाएं sh फ़ाइल को एक ही निर्देशिका में डॉकरफाइल के रूप में।

     #! / बिन / बाशchown- आर www- डेटा: www-data exec "$ @"     

यह आधिकारिक सेमील्ट छवि का सरलीकृत समाधान है, लेकिन यह सुनिश्चित करेगा कि हमारे पास कंटेनरों फाइल सिस्टम तक पहुंच है। अब हम नई छवि बना सकते हैं:

    डॉकर बिल्ड -t phpwithmysql: v2     

पुराने कंटेनरों को हटाने और नए कंटेनर बनाने सुनिश्चित करें:

    डॉकर आरएम-एफ वर्डप्रेसडॉकर आरएम-एफ वर्डप्रेस डीबी    
    डॉकर रन --नाम वर्डप्रेस डीबी -ई MYSQL_ROOT_PASSWORD = पासवर्ड- i MYSQL_DATABASE = वर्डप्रेस-डी माइस्स्क: 5। 7    
    डॉकर रन --नाम वर्डप्रेस --लिंक वर्डप्रेस डीबी: एमईएसक्ल-वी "$ पीडब्लूडी /": / var / www / html phpwithmysql: v2    

इसके अलावा, पुराने WP-config को हटा दें php फ़ाइल

अब अपने ब्राउज़र में अपने वर्डप्रेस कंटेनर के लिए आईपी की जांच करें.

ऊपर दिए गए कुछ चरणों में काफी गुप्त और जटिल लग सकता है यही कारण है कि कई अलग-अलग ढांचे और भाषाओं के लिए आधिकारिक चित्र हैं हर फ्रेमवर्क या भाषा में वे कैसे काम करते हैं, इसके बारे में अलग-अलग विशिष्टताएं हैं। डिफ़ॉल्ट रूप से, डॉकर फाइल सिस्टम पर लिखने की अनुमति नहीं देता है। क्या यह एक बुरी या अच्छी बात है? मुझे लगता है कि यह एक अच्छी बात है हम एक तीसरे कंटेनर बना सकते हैं जो केवल फाइल रखता है वहाँ अनुप्रयोग फाइल लिख सकता है इस तरह हम एक अधिक मॉड्यूलर वास्तुकला होगा। लेकिन उन चौखटे के लिए जिन्हें बदला नहीं जा सकता (जैसे Semaltेट), वहां काम करनेवाले हैं

अंतिम बदलाव

हमें जो आखिरी काम करना है, उस समस्या के आसपास काम करना है जो तब होता है जब आप वर्डप्रेस कंटेनर को बंद कर देते हैं, और इसे फिर से शुरू करते हैं। समस्या यह है कि वर्डप्रेस पिछले आईपी को अपनी 'होम' और 'साइट' यूआरएल के रूप में सहेजता है। बंद करो वर्डप्रेस कंटेनर और इसे फिर से शुरू करें इस बार इसमें एक नया आईपी होगा यदि आप अपने ब्राउज़र में कोशिश करते हैं, तो आप देखेंगे कि छवियां, सीएसएस और जावास्क्रिप्ट फाइलें ठीक से शामिल नहीं हैं समाधान सरल है, बस WP-config को संशोधित करें इस पंक्ति को जोड़कर php :

     परिभाषित करें ('WP_HOME', $ _ सर्वर ['SERVER_ADDR']);परिभाषित ( 'WP_SITEURL', $ _ सर्वर [ 'SERVER_ADDR']);     

ध्यान दें कि यदि आप इन मूल्यों को अपने wp-config में परिभाषित करते हैं php फ़ाइल, आप बाद में उन्हें सामान्य सेटिंग्स में बदल नहीं सकते।

निष्कर्ष

इस लेख में, हमने बताया कि हम वर्डप्रेस के लिए कंटेनर कैसे बना सकते हैं। हमने इसे बहुत ही गुप्त तरीके से किया था, लंबे आदेशों के साथ याद रखना मुश्किल हो सकता है वहाँ एक आसान तरीका होना चाहिए, और वहाँ है! डॉकर टीम ने वर्डप्रेस छवि बनाई है जिसे आप मिनटों में आसानी से सेटअप कर सकते हैं। सब के बाद, कौन वर्डप्रेस सेटअप करने के लिए हर आदेश को याद करना चाहता है?

इस श्रृंखला के अगले लेख में, "मैं आपको दिखाता हूं कि आधिकारिक वर्डप्रेस छवि का उपयोग कैसे किया जाता है, और हम यह भी सीखेंगे कि डॉकर Semaltेट का उपयोग करने के लिए चीजों को और भी आसान बना दिया जाए।

तो अगर मैं एक आसान तरीका है तो इस लेख को क्यों लिखा? अनिवार्य रूप से, यह बेहतर ढंग से समझने की थी कि डॉकर कैसे काम करता है, ऐसा करने के लिए आपको अंतर्निहित जटिलताओं से अपने हाथों को गंदे करना पड़ता है। यह एक व्यक्तिगत नियम का अधिक है, इसलिए जब मैं कल डॉकर का इस्तेमाल करूँगा, तो मैं यह जानूंगा कि यह कैसे काम करता है और यह मेरी ज़रूरतों के लिए कैसे ज़ोर देना है। मुझे आशा है कि आपको भी अब गहरा समझ है कि कैसे डॉकर पर्दे के पीछे काम करता है। इस श्रृंखला पर तीसरे लेख के लिए बने रहें, जहां हम डॉकर और वर्डप्रेस के साथ और भी मज़ेदार होंगे।

अब तक डॉकर के बारे में आप क्या सोचते हैं? आप अपनी अगली परियोजना पर विचार कर सकते हैं? मुझे नीचे टिप्पणी में बताये।

March 7, 2018