"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > अपने प्रोजेक्ट के लिए डॉकर कंटेनर में MySQL का उपयोग करना

अपने प्रोजेक्ट के लिए डॉकर कंटेनर में MySQL का उपयोग करना

2024-08-18 को प्रकाशित
ब्राउज़ करें:172

Using MySQL in a Docker Container for your Projects

मैं अपने होस्ट सिस्टम को साफ रखने में दृढ़ विश्वास रखता हूं। और डॉकर कंटेनर इसका सही समाधान हैं। मान लीजिए कि आप अपनी DB आवश्यकताओं के लिए एक नोड/एक्सप्रेस बैकएंड और एक MySQL सर्वर के साथ एक रिएक्ट ऐप पर काम कर रहे हैं। आमतौर पर, आप अपने होस्ट सिस्टम में MySQL इंस्टॉल करेंगे, एक डेटाबेस बनाएंगे, एक पासवर्ड के साथ एक उपयोगकर्ता बनाएंगे और उस डेटाबेस के साथ काम करने के लिए उपयोगकर्ता को विशेषाधिकार प्रदान करेंगे।

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

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

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

हमें क्या चाहिए होगा?

डॉकर का उपयोग करने के लिए, हमें डॉकर की आवश्यकता है, ओह! मैं यहां डॉकर स्थापित करने के विवरण में नहीं जाऊंगा। यदि आप सीएलआई के साथ सहज नहीं हैं या आप विंडोज़/मैकओएस पर हैं, तो डॉकर डेस्कटॉप चुनें, यह पर्दे के पीछे आपके लिए सभी भारी काम करेगा।

यदि आप इसे महसूस नहीं कर रहे हैं तो लिनक्स उपयोगकर्ता डॉकर कंपोज़ प्लगइन या डॉकर डेस्कटॉप के साथ डॉकर इंजन भी इंस्टॉल कर सकते हैं।

आपको आमतौर पर MySQL आधिकारिक छवि जैसी सार्वजनिक छवियों को डाउनलोड करने के लिए डॉकर हब पर एक खाते की आवश्यकता नहीं है जिसका हम उपयोग करेंगे।

ठीक है, अब क्या?

इसे करने के दो तरीके हैं।

डॉकर रन का उपयोग करना (अनुशंसित नहीं)

डॉकर रन कमांड का उपयोग करके कंटेनर को सीधे चलाने में सक्षम होने के लिए, आपको पहले अपने सिस्टम पर MySQL छवि डाउनलोड करनी होगी। छवि को अपने सिस्टम पर खींचने के लिए, बस इस कमांड का उपयोग करें:

docker pull mysql

नोट: यदि आपको MySQL के किसी विशेष संस्करण की आवश्यकता नहीं है, तो यह कमांड नवीनतम (नवीनतम टैग वाला) डाउनलोड करेगा। यदि आपको आवश्यकता हो तो आप डॉकर हब से अधिक टैग और संस्करण तलाश सकते हैं।

एक बार डॉकर डाउनलोड हो जाने के बाद, आप अपनी डाउनलोड की गई छवि इस तरह देख सकते हैं:

docker image ls

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

इसके अलावा, हर बार जब आप अपना कंटेनर चलाना चाहते हैं, तो आपको या तो टर्मिनल इतिहास से इस लंबे कमांड को निकालना होगा, या इसे फिर से टाइप करना होगा। इसका कोई मतलब नहीं है.

यही कारण है कि मैं इस दृष्टिकोण की अनुशंसा नहीं करता। एक बेहतर रास्ता है।

डॉकर कम्पोज़

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

नोट: आप अपनी कंपोज़ फ़ाइल किसी भी नाम से बना सकते हैं। यदि आप अपने स्वयं के नाम का उपयोग करते हैं या अपनी कंपोज़ फ़ाइल को अन्य फ़ोल्डरों में संग्रहीत करते हैं, तो आपको इसे काम करने के लिए एक ध्वज -f प्रदान करना होगा। वैकल्पिक रूप से, यदि आप अपनी फ़ाइल के समान फ़ोल्डर से कमांड चला रहे हैं, तो आप फ़ाइल को docker-compose.yaml नाम दे सकते हैं।

डॉकर कंपोज़ फ़ाइल एक YAML फ़ाइल है। हमारा इस तरह दिखेगा:

# This Docker Compose YAML deploys a MySQL database
services:
  container-name:

    image: mysql # Official MySQL image from Docker Hub
    restart: always

    environment:
      # Note - Root password is mandatory for the container to run and grant privileges to our User.
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}

      MYSQL_DATABASE: ${MYSQL_DATABASE} # Same name as used in your project

      # DB User Details
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}

    ports:
      # Adjust this port as per your needs -> :
      - 3308:3306 # DB is available at localhost:3308 on the host.

    volumes:
      - ./volumes/db-mnt:/var/lib/mysql

यह फ़ाइल शुरुआत में उल्लिखित जिस्ट पर भी उपलब्ध है।

जानना महत्वपूर्ण

  1. पोर्ट-मैपिंग: पहला पोर्ट होस्ट पोर्ट (आपका सिस्टम) है जिसे दूसरे पोर्ट (डॉकर कंटेनर के अंदर का पोर्ट) पर मैप किया जाता है। इसका मतलब है, उपरोक्त उदाहरण में, आप लोकलहोस्ट:3308 पर डेटाबेस तक पहुंच सकते हैं। जब तक आप नहीं जानते कि आप क्या कर रहे हैं, दूसरे पोर्ट को 3306 रखें। यह MySQL के लिए डिफ़ॉल्ट पोर्ट है।
  2. वॉल्यूम बाइंड माउंट: हम डेटाबेस के अंदर डेटा को बनाए रखने के लिए कंटेनर में एक स्थानीय वॉल्यूम माउंट कर रहे हैं। इससे बैकअप लेना और जरूरत पड़ने पर इधर-उधर घूमना आसान हो जाता है। आप डॉकर को अपना स्वयं का वॉल्यूम प्रबंधित करने और अपने होस्ट सिस्टम पर समय-समय पर बैकअप बनाने की अनुमति भी दे सकते हैं। #### पर्यावरण फ़ाइल कंटेनर बनाते समय डॉकर को आवश्यक क्रेडेंशियल प्रदान करने के लिए, हम एक .env फ़ाइल बनाएंगे, ठीक वैसे ही जैसे हम अपने रिएक्ट या बैकएंड ऐप्स में करते हैं।

आप इस फ़ाइल को या तो उसी फ़ोल्डर में बना सकते हैं जहां आपकी कंपोज़ फ़ाइल है, या आप इसे अपनी इच्छानुसार कहीं भी बना सकते हैं, लेकिन डॉकर-कंपोज़ को कॉल करते समय पथ प्रदान करना होगा।

# Content of the Environment Variables file
MYSQL_ROOT_PASSWORD=rootpassword
MYSQL_DATABASE=nameofdatabase
MYSQL_USER=dbusername
MYSQL_PASSWORD=dbuserpassword

एक बार जब हमारे पास यह सब हो जाएगा, तो हम बस एक छोटी सी कमांड का उपयोग कर सकते हैं और हमारा डेटाबेस तैयार हो जाएगा और हमारा इंतजार कर रहा होगा।

docker-compose up -d

अब आप अपने पसंदीदा साधनों का उपयोग करके डेटाबेस से कनेक्शन बनाने के लिए तैयार हैं।

और चूंकि हमने अपने कंटेनरों को एक कंपोज़ फ़ाइल से चलाने के लिए कॉन्फ़िगर किया है, आप इसे अपने रेपो में एक गिट सिस्टम में सुरक्षित रूप से बैकअप कर सकते हैं। बस यह सुनिश्चित करें कि आप .env फ़ाइल को .gitignore करें।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/nyukeit/using-mysql-in-a-docker-container-for-your-projects-4ham?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163.com पर संपर्क करें इसे हटाने के लिए
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3