मैं आधिकारिक MySQL डॉकटर कंटेनर छवि के आधार पर एक नई MySQL छवि बनाना चाहता हूं। मैं छवि चलाते समय जोड़ने के लिए आवश्यक पैरामीटर की संख्या को कम करना चाहता हूं। (जैसे. -e MYSQL_USER
, -e MYSQL_DATABASE
और यहां तक कि -e MYSQL_ROOT_PASSWORD='rootsecret'
) जिसमें पहले से ही वैश्विक चरों के लिए मेरी सेटिंग्स और docker-entrypoint-initdb.d
फ़ोल्डर में मेरी डेटाबेस SQL फ़ाइल बनाएँ।
मैं अपनी सभी सेटिंग्स को कैसे जोड़ूं और केवल docker run mysql:config1
docker run mysql:config2
इत्यादि में एक नई छवि कैसे बनाऊं?
3 जवाब
निम्नलिखित को Dockerfile
में लिखा जाना है:
FROM mysql:latest
LABEL Name=mylabel Version=0.0.1
COPY path/to/sh/sql/sql.gz/files /docker-entrypoint-initdb.d
ENV MYSQL_ROOT_PASSWORD='rootpassword'
जैसा कि आधिकारिक डॉकटर वेबसाइट पर प्रलेखन में कहा गया है:
जब कोई कंटेनर पहली बार शुरू किया जाता है, तो निर्दिष्ट नाम के साथ एक नया डेटाबेस बनाया जाएगा और प्रदान किए गए कॉन्फ़िगरेशन चर के साथ आरंभ किया जाएगा। इसके अलावा, यह एक्सटेंशन .sh, .sql और .sql.gz के साथ फाइलों को निष्पादित करेगा जो /docker-entrypoint-initdb.d में पाए जाते हैं। फ़ाइलें वर्णानुक्रम में निष्पादित की जाएंगी।
आप डॉकर फ़ाइल का उपयोग करके अपनी खुद की MySQL डॉकर छवि बना सकते हैं, उपयोगकर्ता नाम, पासवर्ड और अन्य सभी चीज़ों को कॉन्फ़िगर कर सकते हैं, उस छवि को बनाएं, इसे डॉकर हब पर अपलोड करें और फिर जब आप एक नया डॉकर कंटेनर लॉन्च करते हैं तो आप पहले से निर्मित कंटेनर का उपयोग करते हैं .
एक mysql सर्वर के साथ एक ubuntu छवि बनाने के लिए एक डॉकर फ़ाइल का एक उदाहरण कुछ इस तरह होगा (इसे Dockerfile नामक फ़ाइल में सहेजें):
FROM ubuntu:latest
RUN apt-get update \
&& apt-get install -y apt-utils \
&& { \
echo debconf debconf/frontend select Noninteractive; \
echo mysql-community-server mysql-community-server/data-dir \
select ''; \
echo mysql-community-server mysql-community-server/root-pass \
password 'Desired-Password'; \
echo mysql-community-server mysql-community-server/re-root-pass \
password 'Desired-Password'; \
echo mysql-community-server mysql-community-server/remove-test-db \
select true; \
} | debconf-set-selections \
&& apt-get install -y mysql-server mysql-client
फिर इस तरह अपना mysql डॉकटर कंटेनर बनाएं (आपको उस फ़ोल्डर में रहना होगा जहां डॉकर फ़ाइल सहेजी गई थी):
docker build my-ubuntu-mysql-docker
फिर आपको इसे डॉकटर हब में धकेलना होगा और फिर आप इसका उपयोग इस तरह से एक नया डॉकटर कंटेनर शुरू करने के लिए कर सकते हैं:
docker run -d -p 2222:22 -p 3306:3306 --name my-ubuntu-mysql-docker ...
जहां 2222 स्थानीय एसएसएच पोर्ट है जो डॉकटर कंटेनर के एसएसएच पोर्ट 22 में मैप किया गया है और 3306 स्थानीय माइस्क्ल पोर्ट है जिसे डॉकटर कंटेनर के माइस्क्ल पोर्ट में मैप किया गया है।
आशा है यह मदद करेगा!
आप जो करना चाहते हैं वह है मैसकल की छवि को संशोधित करना प्रवेश बिंदु और कृपया ध्यान दें कि आपको सभी मापदंडों को पारित करने की आवश्यकता नहीं है, उनमें से अधिकांश वैकल्पिक हैं
नए सवाल
mysql
MySQL एक फ्री, ओपन सोर्स रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) है जो स्ट्रक्चर्ड क्वेरी लैंग्वेज (SQL) का उपयोग करता है। इस टैग को अन्य DBs जैसे SQL Server, SQLite आदि के लिए उपयोग न करें। वे विभिन्न DB हैं जो सभी डेटा का प्रबंधन करने के लिए SQL की अपनी बोलियों का उपयोग करते हैं।