2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Compose इति Docker Company द्वारा प्रारब्धं एकं साधनसॉफ्टवेयरं, यत् अनुप्रयोगं निर्मातुं बहुविधं Docker पात्रं प्रबन्धयितुं शक्नोति । भवद्भिः YAML प्रारूपेण docker-compose.yml इति विन्याससञ्चिकां परिभाषितुं बहुविधपात्रयोः मध्ये आह्वानसम्बन्धान् लिखितुं च आवश्यकम् ।ततः केवलमेकेन आदेशेन एतानि पात्राणि एकस्मिन् समये आरभ्य/निवारयितुं शक्नुवन्ति
Docker अनुशंसति यत् वयं प्रत्येकस्मिन् पात्रे केवलम् एकां सेवां चालयामः यतः docker पात्रं स्वयं अत्यल्पं संसाधनं गृह्णाति, परन्तु तदा वयं अन्यस्याः समस्यायाः सामनां कुर्मः ।
यदि मम एकस्मिन् समये बहुसेवानां परिनियोजनं करणीयम् अस्ति तर्हि प्रत्येकस्य सेवायाः कृते पृथक् Dockerfile लिखितव्यं ततः चित्रं पात्रं च निर्मातव्यं वा एतत् श्रमदायकम् अस्ति, अतः docker आधिकारिकतया अस्मान् docker-compose बहु-सेवानियोजनसाधनं प्रदाति .
उदाहरणार्थं, जालसूक्ष्मसेवापरियोजनां कार्यान्वितुं, जालसेवापात्रस्य एव अतिरिक्तं, प्रायः पृष्ठ-अन्तदत्तांशकोशं mysql सेवापात्रं, redis सर्वरं, पञ्जीकरणकेन्द्रं eureka, अपि च भारसंतुलनपात्रम् इत्यादीनि योजयितुं आवश्यकं भवति . . . . .
Compose उपयोक्तृभ्यः पृथक् docker-compose.yml टेम्पलेट् सञ्चिकायाः (YAML प्रारूपस्य) माध्यमेन परियोजनारूपेण सम्बद्धानां अनुप्रयोगपात्रस्य समुच्चयं परिभाषितुं शक्नोति ।
भवान् बहु-पात्र-अनुप्रयोगं विन्याससञ्चिकायाः सह सहजतया परिभाषितुं शक्नोति, ततः अनुप्रयोगस्य सर्वाणि आश्रयाणि संस्थापयितुं निर्माणं च सम्पूर्णं कर्तुं एकस्य आदेशस्य उपयोगं कर्तुं शक्नोति । Docker-Compose इत्यनेन पात्राणां प्रबन्धनं, आर्केस्ट्रा च कथं करणीयम् इति समस्यायाः समाधानं भवति ।
त्वरितं डाउनलोड् पता
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
कार्यान्वयनीय अनुमतिः योजयन्तु
chmod +x /usr/local/bin/docker-compose
संस्थापनं सफलम् अस्ति वा इति पश्यन्तु
docker-compose --version
uninstall
sudo rm / usr/ local/ bin/docker-compose
Compose इत्यस्य उपयोगाय त्रीणि सोपानानि
प्रत्येकं microservice अनुप्रयोगं परिभाषितुं तथा तत्सम्बद्धं चित्रसञ्चिकां निर्मातुं Dockerfile लिखन्तु
सम्पूर्णं व्यावसायिक-एककं परिभाषितुं तथा समग्र-अनुप्रयोगे विविधानि कंटेनर-सेवानि व्यवस्थापयितुं docker-compose.yml इत्यस्य उपयोगं कुर्वन्तु ।
अन्ते, एक-क्लिक्-नियोजनं सम्पूर्णं कर्तुं तथा च ऑनलाइन गन्तुं सम्पूर्णं अनुप्रयोगं आरभ्य चालयितुं docker-compose up आदेशं निष्पादयन्तु ।
सामान्यादेशान् रचयतु
docker-compose -h # सहायतां पश्यन्तु
docker-compose up # सर्वाणि docker-compose सेवानि आरभत
docker-compose up -d # सर्वाणि docker-compose सेवाः आरभ्य पृष्ठभूमितः चालयन्तु
docker-compose down # पात्राणि, संजालानि, खण्डानि, चित्राणि च स्थगयन्तु, विलोपयन्तु च ।
docker-compose exec yml इत्यस्मिन् सेवा id # कंटेनर दृष्टान्तस्य अन्तः प्रविष्टं कुर्वन्तु
docker-compose exec docker-compose.yml सञ्चिका लिखिता सेवा id /bin/bash
docker-compose ps # docker-compose द्वारा वर्तमानकाले आर्केस्ट्रेट् कृतानि सर्वाणि चालितपात्राणि प्रदर्शयन्तु
docker-compose top # docker-compose द्वारा आर्केस्ट्रा कृताः वर्तमानपात्रप्रक्रियाः प्रदर्शयन्तु
docker-compose logs मध्ये service id yml # कंटेनर आउटपुट लॉग् पश्यन्तु
docker-compose config # विन्यासस्य जाँचं कुर्वन्तु
docker-compose config -q # समस्याः सन्ति चेत् एव विन्यासस्य निर्गमस्य च जाँचं कुर्वन्तु
docker-compose restart # सेवां पुनः आरभत
docker-compose start # सेवां आरभत
docker-compose stop # सेवां स्थगयतु
docker-machine आदेशस्थापनम्
base=https://get.daocloud.io/docker/machine/releases/download/v0.14.0 &&
curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
sudo install /tmp/docker-machine /usr/local/bin/docker-machine
१) Linux वर्चुअल् मशीन् इत्यस्मिन् IP-सङ्केतं 192.168.90.215 इति विन्यस्यताम् (x भवतः छात्र-ID इत्यस्य अन्तिमाः ३ अङ्काः सन्ति, y स्वयमेव निर्दिष्टः अस्ति), वर्चुअल् मशीन् सामान्यतया अन्तर्जालं प्राप्तुं शक्नोति
2) DNS सर्वरं विन्यस्यताम्, डोमेन् cr.com (abc भवतः नामस्य आद्याक्षराणि सन्ति), विन्यासस्य समाप्तेः अनन्तरं, अग्रे विपर्ययस्य च संकल्पस्य सत्यापनार्थं nslookup इत्यस्य उपयोगं कुर्वन्तु;
3) LEMP (अर्थात् Nginx + MySQL (MariaDB) + PHP) विन्यस्तं कुर्वन्तु, तथा च वास्तविकहोस्ट् मार्गेण www.cr.com (abc भवतः आद्याक्षराणि सन्ति) इत्यत्र प्रवेशं कृत्वा निर्मितं LEMP अभिगन्तुं शक्नुवन्ति । (भवन्तः स्थानीयसंकल्पाय hosts सञ्चिकां परिवर्तयितुं न शक्नुवन्ति, परन्तु स्वस्य विन्यस्तं DNS उपयोक्तुं अर्हन्ति)
प्रथमं Linux कृते स्थिरं IP विन्यस्यताम् http://alleniverrui.top/archives/linux-pei-zhi-jing-tai-ip (यदि तत् उद्घाटयितुं न शक्यते तर्हि अधोलिखितं पता परिवर्तयतु)
//कर्तुं
/etc/named.conf सञ्चिकां सम्पादयन्तु
vim /etc/named.conf
listen on तथा query मूल्यानि any इति परिवर्तयन्तु
cr.com इत्येतत् 192.168.90.215 इति समाधानार्थं dns विन्यस्यताम्
vim /etc/named.rfc1912.zones
सञ्चिकायाः अन्ते योजयन्तु
zone "cr.com" IN {
type master;
file "cr.com.zone";
allow-update { none; };
};
zone "215.90.168.192.in-addr.arpa" IN {
type master;
file "com.cr.loop";
allow-update { none; };
};
:wq रक्षितुं
तत्सम्बद्धं विन्याससञ्चिकां vim /var/named/com.cr.loop सम्पादयन्तु
निम्नलिखितम् योजयन्तु
$TTL 1D
@ IN SOA cr.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
PTR cr.com.
NS ns.cr.com.
ns A 192.168.90.215
201 PTR www.cr.com.
201 PTR email.cr.com.
विम /var/नाम/cr.com.zone सम्पादयतु
निम्नलिखितम् योजयन्तु
$TTL 1D
@ IN SOA cr.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.90.215
AAAA ::1
NS ns.server.com.
ns IN A 192.168.90.215
www IN A 192.168.90.215
email IN A 192.168.90.215
पुनः आरभत dns
systemctl restart named
dns स्थितिं पश्यन्तु
systemctl status named
सफलतया आरब्धम्
अग्रे विश्लेषणं nslookup cr.com
रिवर्स पार्सिंग nslookup 192.168.90.215
docker-compose.yml सञ्चिकां /mydocker/lemp इत्यत्र लिखन्तु
vim /mydocker/lemp/docker-compose.yml निम्नलिखित सामग्रीं पूरयन्तु
nginx:
build: ./nginx/
ports:
- 80:80
links:
- php
volumes_from:
- app
php:
build: ./php/
expose:
- 9000
links:
- mysql
volumes_from:
- app
app:
image: php:7.0-fpm
volumes:
- .:/var/www/html
command: "true"
mysql:
image: mysql:latest
volumes_from:
- data
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: bookmarks
MYSQL_USER: cr
MYSQL_PASSWORD: cr123
data:
image: mysql:latest
volumes:
- /var/lib/mysql
command: "true"
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- 8080:80
links:
- mysql
environment:
PMA_HOST: mysql
/mydocker/lemp/ इत्यस्मिन् nginx/Dockerfile रचयन्तु ।
पूरयतु
FROM nginx:latest
COPY ./default.conf /etc/nginx/conf.d/default.conf
default.conf रचयन्तु
निम्नलिखित सामग्रीं पूरयन्तु
server {
listen 80 default_server;
root /var/www/html;
index index.html index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/error.log error;
sendfile off;
client_max_body_size 100m;
location ~ .php$ {
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
location ~ /.ht {
deny all;
}
}
/mydocker/lemp/ इत्यस्मिन् php/Dockerfile रचयन्तु ।
पूरयतु
FROM php:7.0-fpm
RUN docker-php-ext-install mysqli
डॉकर पात्रेषु आर्केस्ट्रा कुर्वन्तु
docker-compose up -d
पात्रस्य चालनस्थितिं द्रष्टुं Docker ps
सफलतया आरब्धम्
एतत् यन्त्रं IP मार्गेण php वातावरणं nginx वातावरणं च अभिगच्छति
अभिगमः सफलः
स्थानीय dns सर्वरं आभासीयन्त्ररूपेण विन्यस्यताम्, यत् 192.168.90.215 अस्ति
cmd विण्डो उद्घाट्य cr.com इत्यत्र ping test कुर्वन्तु
सफलतया पिंग कृतम्
डोमेननामद्वारा निर्मितं php वातावरणं प्राप्नुवन्तु
nginx विन्याससञ्चिकां परिवर्तयन्तु
अन्तिमः डोमेननाम प्रत्यक्षतया जालपुटे प्रवेशं करोति