मैं एक पूर्ण विकास ढेर बनाने के लिए डॉकर-रचना का उपयोग कर रहा हूं।डॉकर-कंपोज़ का उपयोग करके एक दूसरे के साथ डॉकर कंटेनर को लिंक करते समय आईपी पते को कैसे संभालें?
एप्लिकेशन को काम करने के लिए एक MySQL सर्वर की आवश्यकता है।
my-application:
build: . # the Dockerfile resides in the current folder
ports:
- "9180:80"
- "9543:443"
external_links:
- mysql_mysql_1:mysql
environment:
DOCKER_ENVIRONMENT: dev
DB_NAME: local_db
DB_PASS: password
DB_USER: root
DB_HOST: # how to set the mysql's IP address?
मैं पारित नहीं कर सकते हैं:
mysql:
image: mysql:5.6
volumes:
- /data/mysql:/var/lib/mysql
- ./docker/mysql.d:/etc/mysql/conf.d
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: password
अनुप्रयोग की अपनी डोकर-compose.yml और संदर्भ mysql कंटेनर है:
mysql सर्वर डोकर-लिखें द्वारा एक बाहरी कंटेनर सेटअप है उन्हें डॉकर-कंपोज़ में गतिशील है क्योंकि यह गतिशील है।
मुझे पता है कि आवेदन mysql आईपी पते के बारे में पता है, जैसा कि मैंने कुछ वेरिएबल सेट है:
application-container$ env|grep ADDR
MYSQL_PORT_3306_TCP_ADDR=172.17.0.241
फिर भी यह मेरी आवश्यक DB_HOST
नहीं है।
क्या मैं किसी भी तरह से वैरिएबल को DB_HOST
पर मैप कर सकता हूं या इसे अलग से सेट कर सकता हूं?
आपका mysql सर्वर बाहरी डॉकर-कंपोज़र.आईएमएल फ़ाइल पर क्यों है? क्या यह वास्तव में आवश्यक है? आमतौर पर, यदि आपके पास कंटेनरकृत अनुप्रयोग हैं जो एक साथ चलने की आवश्यकता है तो आपको केवल एक डॉकर-कंपोज़र.आईएमएल में कॉन्फ़िगर करना होगा। – nessuno
@nessuno मैं कई परियोजनाओं के लिए उस MySQL कंटेनर का उपयोग करना चाहता हूं। मुझे 12 माइस्क्ल सर्वरों की उड़ान भरने की ज़रूरत नहीं है।इसके अलावा, मैं mysql डेटा को '/ data/mysql' पर स्थित मेरे बड़े HDD पर मैप करता हूं, क्योंकि mysql डेटाबेस काफी बड़े हो सकता है। यदि आपके पास एक ही फ़ोल्डर में मैप किए गए एकाधिक MySQL उदाहरण हैं, तो फाइलसिस्टम लॉक समस्याओं का कारण बन जाएगा। – k0pernikus
आप अपने एप्लिकेशन के साथ MySQL कंटेनर कॉन्फ़िगरेशन को एक साथ रख सकते हैं, मुझे लगता है कि आपको केवल '--no-recreate' ध्वज के साथ डॉकर-कंपोज़ चलाना होगा, मुझे लगता है। उसके बाद आपके पास केवल एक mysql कंटेनर है, और आप उस कंटेनर को सीधे उसके नाम का उपयोग करके डॉकर-compose.yml फ़ाइल में संदर्भित कर सकते हैं। इस प्रकार 'डीबी_एचओएसटी: mysql' बनाओ। – nessuno