docker-compose
डिफ़ॉल्ट नेटवर्क के साथ डॉकटर-कम्पोजिट मल्टी-कंटेनर उदाहरण
खोज…
टिप्पणियों
डिफ़ॉल्ट रूप से कम्पोज़ आपके ऐप के लिए एकल नेटवर्क सेट करता है। सेवा के लिए प्रत्येक कंटेनर डिफ़ॉल्ट नेटवर्क में शामिल हो जाता है और दोनों उस नेटवर्क पर अन्य कंटेनरों द्वारा पहुंच योग्य है, और उनके द्वारा खोजा जा सकता है जो कंटेनर नाम के समान होस्टनाम में है।
लिंक्स आपको अतिरिक्त उपनामों को परिभाषित करने की अनुमति देता है जिसके द्वारा एक सेवा दूसरी सेवा से उपलब्ध है। उन्हें संचार के लिए सेवाओं को सक्षम करने की आवश्यकता नहीं है - डिफ़ॉल्ट रूप से, कोई भी सेवा उस सेवा के नाम पर किसी अन्य सेवा तक पहुंच सकती है।
कैसे डिफ़ॉल्ट नेटवर्किंग के साथ एक बुनियादी LAMP वातावरण बनाने के लिए
डोकर-compose.yml
version: '2'
services:
php:
image: phpmyadmin/phpmyadmin
links:
- mysql:db
depends_on:
- mysql
mysql:
image: k0st/alpine-mariadb
volumes:
- ./data/mysql:/var/lib/mysql
environment:
- MYSQL_DATABASE=mydb
- MYSQL_USER=myuser
- MYSQL_PASSWORD=mypass
nginx:
image: nginx:stable-alpine
ports:
- "81:80"
volumes:
- ./nginx/log:/var/log/nginx
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- php
nginx / nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
sendfile off;
server {
listen 80;
location / {
proxy_pass http://php;
proxy_set_header Host $host;
proxy_redirect off;
}
}
}
नोट nginx कॉन्फिग को सरल किया गया है, लेकिन ऊपर परीक्षण के लिए काम करना चाहिए - मूल रूप से यह सब कर रहा है php ऐप को समीप कर रहा है। मेजबान पर संघर्ष से बचने के लिए पोर्ट 81 पर मानचित्र - आवश्यकतानुसार समायोजित करें।
जोड़ने के बारे में, आप देख सकते हैं कि आप चलाते हैं: docker-compose exec mysql ping -c2 nginx
nginx कंटेनर के लिए mysql कंटेनर से पिंग करने के लिए, आप भले ही इन कंटेनरों के बीच निर्दिष्ट कोई सम्बन्ध नहीं देखते हैं सफल होगा। Docker Compose उन लिंक्स को आपके लिए डिफ़ॉल्ट नेटवर्क में बनाए रखेगा।