Контейнеризация — бұл қазіргі қосымшаларды әзірлеу мен жұмыс істеудің маңызды тәсілі. Docker — контейнерлермен жұмыс істеуге арналған негізгі құрал, оның функционалдығы контейнерлерді қарапайым жасау мен іске қосудан бастап, күрделі таралған жүйелерде оркестрациялауға дейінгі барлық нәрсені қамтиды.
Бұл мақалада біз контейнерлермен жұмыс істеудің үш негізгі әдісін қарастырамыз: docker run командасын қолдану, көп контейнерлі қосымшалар үшін docker-compose құралын және Docker Swarm оркестрация жүйесін. Біз әрбір технологияны мысалдармен және терең түсіндірмелермен егжей-тегжейлі талқылаймыз.
1. Контейнерлерді іске қосу үшін docker run қолдану
docker run
командасының негіздері
docker run
командасы Docker бейнесі негізінде контейнерді жасау және іске қосу үшін қолданылады. Бұл контейнерлермен жұмыс істеудің ең қарапайым тәсілі, ол жылдам әзірлеу және тестілеу үшін қолайлы.
Негізгі синтаксис:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
- IMAGE — Docker бейнесінің атауы немесе идентификаторы.
- COMMAND — контейнерде орындалатын команда (егер көрсетілмесе, Dockerfile-дағы әдепкі команда қолданылады).
- ARG — командаға қажет болса, аргументтер.
Қолданудың мысалы:
Алдымен ең қарапайым мысалды қарастырайық — Nginx веб-серверімен контейнерді іске қосу:
docker run -d -p 8080:80 nginx
Бұл код бірнеше маңызды әрекеттерді орындайды:
-d
— контейнер фондық режимде іске қосылады (detached mode).-p 8080:80
— контейнер ішіндегі 80 портын хост-машинадағы 8080 портына бағыттайды. Енді веб-серверге http://localhost:8080 арқылы кіруге болады.- nginx — контейнер негізінде іске қосылатын бейне.
Орташа айнымалыларды орнату
Көбінесе контейнерлерге орташа айнымалыларды беру қажет болады. Мысалы, MySQL контейнерінде дерекқор паролін орнату үшін -e
параметрін қолданамыз:
docker run -d -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql
Мұнда:
-e MYSQL_ROOT_PASSWORD=my-secret-pw
— контейнерге орташа айнымалыны орнатады, онда MySQL пайдаланушысы үшінroot
құпия сөзі көрсетіледі.
Томдарды монтировать ету
Контейнерлер қайта іске қосылған кезде деректердің тұрақтылығын сақтау үшін томдарды (volumes) монтировать етуге болады. Мысалы, MySQL деректерін хост-машинада сақтау үшін келесі команданы қолданамыз:
docker run -d -v /path/to/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql
Мұнда:
-v /path/to/mysql/data:/var/lib/mysql
— локальды/path/to/mysql/data
директориясын контейнер ішіндегі/var/lib/mysql
директориясына монтировать етеді, онда MySQL деректерін сақтайды.
Контейнерді тоқтату
Контейнерді тоқтату үшін келесі команданы пайдалануға болады:
docker stop <container_id>
Мұндағы <container_id>
— тоқтатылатын контейнердің идентификаторы немесе аты.
2. Көп контейнерлі қосымшалар үшін docker-compose қолдану
docker-compose
— бұл көп контейнерлі қосымшаларды басқару құралы, ол барлық контейнерлерді бір конфигурациялық файлға (docker-compose.yml
) сипаттап, содан кейін тек бір команда арқылы бүкіл қосымшаны басқарады. Бұл көптеген қызметтерден тұратын қосымшалар үшін өте ыңғайлы, мысалы веб-сервер, дерекқор және кэш.
Docker Compose орнату
Алдымен Docker Compose жүйесінің орнатылғанын тексеріңіз. Ол үшін келесі команданы орындаңыз:
docker-compose --version
Егер орнатылмаған болса, оны Docker Compose ресми парақшасынан орнатуға болады.
docker-compose.yml
конфигурациясының мысалы
Қарапайым қосымшаны алайық, ол екі қызметтен тұрады: Nginx негізіндегі веб-сервер және MySQL дерекқоры.
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
networks:
- my_network
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: example
networks:
- my_network
volumes:
- db-data:/var/lib/mysql
networks:
my_network:
volumes:
db-data:
Мұнда:
- web —
nginx
бейнесін пайдаланатын қызмет, контейнердің 80 портын хосттың 8080 портына бағыттайды. - db —
mysql
бейнесін пайдаланатын қызмет, ондаMYSQL_ROOT_PASSWORD
арқылыroot
пайдаланушысының паролі орнатылған. Сондай-ақ дерекқор деректерін сақтау үшін том пайдаланылады. - networks — екі қызмет бірлесіп қолданатын
my_network
желісі.
Қосымшаны іске қосу
docker-compose
арқылы қосымшаны орналастыру үшін келесі команданы орындаңыз:
docker-compose up -d
-d
— фондық режимде іске қосу.
Осыдан кейін қосымша іске қосылады және веб-сервиске 8080 портында кіруге болады.
Қосымшаны тоқтату
Барлық контейнерлерді тоқтату үшін келесі команданы орындаңыз:
docker-compose down
Бұл контейнерлерді тоқтатады және олармен байланысты желілер мен томдарды жояды.
Логтарды қарау
Барлық контейнерлердің логтарын көру үшін келесі команданы орындаңыз:
docker-compose logs
Егер тек белгілі бір қызметтің (мысалы, web
) логтарын көргіңіз келсе:
docker-compose logs web
3. Docker Swarm — контейнерлерді оркестрациялау
Docker Swarm — бұл Docker-дің кірістірілген оркестрация жүйесі, ол бірнеше түйіннен тұратын кластерде контейнерлерді орналастыру мен басқаруға мүмкіндік береді. Swarm автоматты масштабтауды, жүктеме балансын, жағдайды басқаруды және жоғары қолжетімділікті қамтамасыз етеді.
Swarm кластерін инициализациялау
Swarm-ды қолдануды бастау үшін алдымен кластерді инициализациялау қажет. Мұны келесі команда арқылы жасауға болады:
docker swarm init
Бұл команда сіздің машинаңызды Swarm менеджер түйініне айналдырады, ол кластерді басқаруды қамтамасыз етеді.
Қызмет жасау
Swarm кластері бапталғаннан кейін қызметтерді жасауға болады. Мысалы, 3 репликасы бар Nginx қызметін жасау мысалын қарастырайық:
docker service create --name web --replicas 3 -p 8080:80 nginx
Мұнда:
--name web
— қызметтің атауы.--replicas 3
— реплика саны (бұл жағдайда үш Nginx контейнері іске қосылады).-p 8080:80
— хосттың 8080 портын контейнер ішіндегі 80 портқа бағыттайды.
Қызметті масштабтау
Қызметтің репликаларын көбейту үшін келесі команданы орындауға болады:
docker service scale web=5
Бұл web
қызметінің репликаларын 5-ке дейін арттырады.
Қызметтердің күйін көру
Қандай қызметтердің кластерде жұмыс істеп жатқанын көру үшін келесі команданы орындаңыз:
docker service ls
Қызмет қай түйінде жұмыс істеп жатқанын көру үшін:
docker service ps web
Жүктеме балансын орнату
Docker Swarm автоматты түрде контейнерлер арасында жүктемені теңдей бөледі, жаңа репликаларды орналастырған кезде трафикті олар арасында таратады.
Қызметтерді тоқтату және жою
Swarm кластерінен қызметті жою үшін келесі команданы орындаңыз:
docker service rm web
Docker Stack көмегімен орналастыру
Күрделі қосымшалар үшін docker stack
пайдаланып, Swarm-да көп контейнерлі қосымшаны орналастыруға болады. docker-stack.yml
файлын пайдаланып орналастыру мысалын қарастырайық:
docker-stack.yml
файлын жасаңыз:
version: '3.7'
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: example
- Стекті орналастыру:
docker stack deploy -c docker-stack.yml my_stack
Қорытынды
Бұл мақалада біз Docker-дағы контейнерлермен жұмыс істеудің үш әдісін тереңірек қарастырдық: docker run
командасын пайдалану, көп контейнерлі қосымшалар үшін docker-compose
және Docker Swarm арқылы контейнерлерді оркестрациялау. Әрбір тәсіл өз ерекшеліктеріне ие және әртүрлі қосымшалар үшін ыңғайлы.
Docker контейнеризацияның дамуында үлкен рөл атқарады, себебі ол әзірлеушілер мен операциялық инженерлерге контейнерлер мен олардың өзара әрекеттесуін тиімді басқаруға мүмкіндік береді.
Реклама Google |
![]() |
Назар аударыңыз! Бұл мақала ресми құжат емес.Ақпаратты сақтықпен және сынақ ортасында пайдалану керек.
Заманауи сақтық көшірме жасау, репликациялау, деректерді синхрондау және төлемдік бағдарламадан қорғау жүйелерін құру туралы сұрақтарыңыз болса, қазіргі заманғы деректердің сақтық көшірмесін жасау және қалпына келтіру технологиялары бойынша кеңес алу үшін біздің компанияға хабарласыңыз . Біздің компанияның осы салада 20 жылдан астам тәжірибесі бар. |
Қазақстандағы резервтік көшірудің ең жақсы он тәжірибесі
- Proxmox гипервизорын жаңа физикалық серверге көшіру
- OpenShift қолдану арқылы Docker контейнерлерін пайдалану — терең талдау
- Wazuh-ты Proxmox қауіпсіздігін бақылау үшін пайдалану - Терең талдау Кіріспе
- Fail2Ban-ды zVirt-те орнату, баптау және пайдалану
- Graylog Community Edition-ді Proxmox-қа орнату, баптау және пайдалану
- Elasticsearch-ті Proxmox жүйесіне орнату, баптау және пайдалану
- Kibana-ны Proxmox-қа орнату, баптау және пайдалану
- Logstash-ты Proxmox-қа орнату, баптау және пайдалану
- Proxmox логтарын талдау үшін ИИ мүмкіндіктері
- Ceph-ті OpenStack-те орнату, баптау және пайдалану