Docker қосымшаларды құру, орналастыру және масштабтаудың тәсілін түбегейлі өзгертті. Оның маңызды аспектілерінің бірі — әр контейнер өз міндетін орындайтын және бір-бірімен өзара әрекеттесетін бірнеше контейнерден тұратын көп контейнерлі қосымшалармен жұмыс жасау мүмкіндігі. Бұл мақалада біз Docker-да көп контейнерлі қосымшалармен қалай жұмыс істеуге болатынын қарастырамыз.
1. Көп контейнерлі қосымшалар дегеніміз не?
Көп контейнерлі қосымша — бірнеше контейнерден тұратын қосымша, олардың әрқайсысы өз міндетін орындайды. Мысалға, классикалық көп контейнерлі қосымша — веб-қосымша, ол келесідей компоненттерден тұруы мүмкін:
- Веб-сервер (мысалы, Nginx немесе Apache)
- Қосымша (мысалы, Node.js немесе Python)
- Деректер қоры (мысалы, MySQL немесе PostgreSQL)
Барлық осы контейнерлер бір-бірімен әрекеттесіп, қосымшаның толық жұмысын қамтамасыз етеді.
2. Неліктен көп контейнерлі қосымшаларды қолдану керек?
Көп контейнерлі қосымшалармен жұмыс жасау бірнеше маңызды мәселелерді шешуге мүмкіндік береді:
- Компоненттердің изоляциясы: Әрбір компонент бөлек контейнерде жұмыс істейді, бұл оның изоляциясын, қауіпсіздігін және масштабталуын жақсартады.
- Жаңарту және басқару: Жеке компоненттерді жаңарту оңайырақ, бүкіл жүйені өзгертпей. Мысалы, деректер қоры контейнерін жаңартуды веб-серверді өзгертпей орындауға болады.
- Масштабталу: Әрбір контейнерді бөлек масштабтауға болады. Мысалы, веб-сервердің бірнеше экземплярын қосып, көптеген сұраныстарды өңдеуге мүмкіндік береді.
- Тәуелділіктерді басқару: Әрбір контейнер тек өзіне қажет тәуелділіктерді ғана қамтиды, бұл басқа бөліктерге әсер етпейді.
3. Docker Compose: көп контейнерлі қосымшалармен жұмыс істеуге арналған құрал
Docker-да көп контейнерлі қосымшалармен жұмыс істеудің ең танымал құралдарының бірі — Docker Compose. Бұл құрал бір YAML файлы (docker-compose.yml
) арқылы көп контейнерлі қосымшаларды сипаттауға мүмкіндік береді, онда барлық қажетті қызметтер, олардың тәуелділіктері, баптаулары мен байланыстары көрсетіледі.
docker-compose.yml
файлының мысалы
Мысалы, бізде Node.js негізіндегі веб-қосымша және MySQL деректер қоры бар. Мұндай қосымшаны Docker Compose арқылы келесідей сипаттауға болады:
version: '3'
services:
web:
image: node:14
working_dir: /app
volumes:
- ./app:/app
ports:
- "3000:3000"
depends_on:
- db
command: "npm start"
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: mydb
volumes:
- db_data:/var/lib/mysql
ports:
- "3306:3306"
volumes:
db_data:
Құрылымды түсіндіру:
- web: Бұл веб-қосымша контейнері,
node:14
образына негізделген. Онда локалды./app
папкасы контейнердің/app
жолына монтаждалады, сонымен қатар порттар (3000) локалды машинамен контейнер арасында ашылады. - db: MySQL контейнері,
mysql:5.7
образына негізделген. Мұнда root паролі мен деректер қорының аты сияқты орта айнымалылары анықталған, сондай-ақ деректерді сақтау үшін том пайдаланылады. - volumes:
db_data
томы анықталған, ол деректер қорының мәліметтерін контейнер қайта іске қосылғанда сақтап тұрады.
Docker Compose арқылы көп контейнерлі қосымшаны іске қосу
Қосымшаны іске қосу үшін келесі команданы орындау жеткілікті:
docker-compose up
Бұл команда барлық контейнерлерді, docker-compose.yml
файлына сәйкес, қажетті тәртіппен және тәуелділіктерді ескере отырып, құрып және іске қосады.
Егер контейнерлерді фондық режимде іске қосқыңыз келсе, -d
параметрін қолдануға болады:
docker-compose up -d
Көп контейнерлі қосымшаны тоқтату
Docker Compose арқылы іске қосылған барлық контейнерлерді тоқтату үшін келесі команданы орындаңыз:
docker-compose down
Бұл команда контейнерлерді тоқтатып, оларды жояды, бірақ томдарда сақталған деректер сақталады.
4. Docker Compose-те желілерді баптау
Docker Compose контейнерлер үшін желі автоматты түрде жасайды. Бір docker-compose.yml
файлына сипатталған барлық контейнерлер әдепкі бойынша бір ортақ желіге қосылады, бұл олардың өзара әрекеттесуін жеңілдетеді.
Желі баптау мысалы
Егер контейнерлер үшін арнайы желілерді анықтағыңыз келсе, networks
параметрін қолдануға болады:
version: '3'
services:
web:
image: node:14
networks:
- front-end
db:
image: mysql:5.7
networks:
- back-end
networks:
front-end:
back-end:
Бұл мысалда веб-қосымша front-end
желісіне қосылады, ал деректер қоры back-end
желісіне қосылады. Осылайша, олар бір-бірімен тікелей өзара әрекеттесуге мүмкіндігі болмайды, егер арнайы желілер арасында байланыс орнатылмаса.
5. Көп контейнерлі қосымшалар мен оркестрация
Егер біз көп контейнерлі қосымшалармен жұмыс істесек, Docker Compose жеткілікті болып табылады. Бірақ қосымша күрделенген кезде және контейнерлердің үлкен санын басқару қажет болғанда, оркестрация шешімдеріне, мысалы, Docker Swarm немесе Kubernetes жүйелеріне көшу қажет болады.
Docker Swarm
Docker Swarm — бұл контейнерлерді оркестрациялау құралы, ол бірнеше хостта көп контейнерлі қосымшаларды автоматты түрде орналастыруды, басқаруды және масштабтауды қамтамасыз етеді. Docker Swarm Docker Compose сияқты командаларды пайдаланады, бірақ контейнерлерді бірнеше машиналар арасында таратады, бұл жоғары қолжетімділік пен ақаусыздықты қамтамасыз етеді.
Kubernetes
Kubernetes — бұл контейнерлерді оркестрациялау үшін кеңінен қолданылатын күрделі және масштабталатын жүйе, ол контейнерлерді кластерде автоматты түрде орналастыруды, басқаруды және масштабтауды қамтамасыз етеді. Kubernetes қосымшаларында жоғары қолжетімділік, автоматты масштабтау және жаңартуларды басқару сияқты көптеген функциялар қолданылады.
6. Логтарды бақылау және мониторинг
Көп контейнерлі қосымшалармен жұмыс істегенде, контейнерлердің жұмысын бақылау мен мониторингтеу өте маңызды.
Логтарды бақылау
Docker әрбір контейнер үшін логтарды көруге мүмкіндік береді. Мысалы, контейнердің логтарын шығару үшін келесі команданы қолдануға болады:
docker logs <container_id>
Көп контейнерлі қосымшалармен жұмыс істегенде логтарды орталықтандыру жүйелерін, мысалы ELK Stack (Elasticsearch, Logstash, Kibana) немесе Fluentd жүйелерін қолдану арқылы қарау ыңғайлы болады.
Мониторинг
Контейнерлерді мониторингтеу үшін Prometheus және Grafana сияқты құралдар қолдануға болады, олар контейнерлерден метрикаларды жинап, графиктерде көрсетуге мүмкіндік береді.
7. Қорытынды
Docker және оның құралдары, мысалы Docker Compose, көп контейнерлі қосымшаларды құру, орналастыру және басқаруға қуатты мүмкіндіктер ұсынады. Осы құралдар арқылы қосымшаның әртүрлі компоненттері, мысалы деректер қоры, веб-серверлер және backend-қызметтер бір-бірімен дұрыс әрекеттесе отырып, толыққанды жұмыс істейді. Алайда күрделі жүйелер үшін Docker Swarm немесе Kubernetes сияқты оркестрация жүйелерін қолдану қажет болуы мүмкін. Сонымен қатар, логтарды бақылау және мониторингті дұрыс ұйымдастыру, көп контейнерлі қосымшалармен жұмысты оңтайландырады.
Көп контейнерлі қосымшалар Docker арқылы кешенді жүйелерді қарапайым бөліктерге бөліп, олардың қауіпсіздігі, оқшаулануы және масштабталуын қамтамасыз етеді.
Реклама Google |
![]() |
Назар аударыңыз! Бұл мақала ресми құжат емес.Ақпаратты сақтықпен және сынақ ортасында пайдалану керек.
Заманауи сақтық көшірме жасау, репликациялау, деректерді синхрондау және төлемдік бағдарламадан қорғау жүйелерін құру туралы сұрақтарыңыз болса, қазіргі заманғы деректердің сақтық көшірмесін жасау және қалпына келтіру технологиялары бойынша кеңес алу үшін біздің компанияға хабарласыңыз . Біздің компанияның осы салада 20 жылдан астам тәжірибесі бар. |
Қазақстандағы резервтік көшірудің ең жақсы он тәжірибесі
- Proxmox гипервизорын жаңа физикалық серверге көшіру
- OpenShift қолдану арқылы Docker контейнерлерін пайдалану — терең талдау
- Wazuh-ты Proxmox қауіпсіздігін бақылау үшін пайдалану - Терең талдау Кіріспе
- Fail2Ban-ды zVirt-те орнату, баптау және пайдалану
- Graylog Community Edition-ді Proxmox-қа орнату, баптау және пайдалану
- Elasticsearch-ті Proxmox жүйесіне орнату, баптау және пайдалану
- Kibana-ны Proxmox-қа орнату, баптау және пайдалану
- Logstash-ты Proxmox-қа орнату, баптау және пайдалану
- Proxmox логтарын талдау үшін ИИ мүмкіндіктері
- Ceph-ті OpenStack-те орнату, баптау және пайдалану