Anonīms

Kā apturēt visus Docker konteinerus, izmantojot

Kā apturēt visus Docker konteinerus, izmantojot
Ansible ir daudz moduļu, lai automatizētu jūsu Docker resursdatoru, konteinerus, sējumus, tīklus utt. Ja vēlaties pārtraukt darbojošos Docker konteinerus, varat to arī izdarīt.

Šajā rakstā es jums parādīšu, kā apturēt konkrētu Docker konteineru. Es arī parādīšu, kā apturēt visus darbojošos Docker konteinerus vai visus Docker konteinerus, kuros darbojas noteikts Docker attēls, izmantojot Ansible. Tātad, sāksim darbu.

Priekšnosacījumi:

Ja vēlaties izmēģināt šī raksta piemērus,

1) Jūsu datorā jābūt instalētai programmai Ansible.
2) Docker jābūt instalētam datorā vai attālā Ubuntu resursdatorā.
3) Docker resursdatorā jābūt instalētai Python Docker bibliotēkai.
4) Docker resursdators ir jākonfigurē iespējamai automatizācijai.

PIEZĪME: Dokera saimnieks ir dators, kurā esat instalējis Docker.

Vietnē LinuxHint ir daudz rakstu, kas veltīti Ansible instalēšanai un resursdatoru konfigurēšanai Ansible automatizācijai un Docker instalēšanai. Ja nepieciešams, varat tos pārbaudīt.

Projektu direktorija izveide:

Lai visi šajā rakstā izveidotie faili un direktorijs būtu sakārtoti, ieteicams izveidot projekta direktoriju.

Lai izveidotu projekta direktoriju docker1 / pašreizējā darba direktorijā izpildiet šādu komandu:

$ mkdir -pv docker1 / playbooks

Tagad dodieties uz docker1 / projekta direktoriju šādi:

$ cd docker1 /

Konfigurēšana iespējama attālās dokstacijas resursdatora automatizācijai:

Ja Docker ir instalēts attālā Ubuntu resursdatorā, kuru vēlaties automatizēt, izmantojot Ansible, tad šī sadaļa ir domāta jums.

Vispirms izveidojiet Ansible inventāra failu saimniekiem ar šādu komandu:

$ nano saimnieki

Tagad pievienojiet Docker resursdatora IP adresi vai DNS nosaukumu saimnieku krājuma failu šādi.

[dokeris]
vm4.nodekite.com

Manā gadījumā mana Ubuntu Docker resursdatora DNS nosaukums ir vm4.nodekite.com. Jums būs savādāk. Tāpēc noteikti nomainiet to pēc nepieciešamības.

Kad esat pabeidzis, nospiediet + X sekoja un lai saglabātu saimniekiem failu.

Tagad izveidojiet Ansible konfigurācijas failu iespējams.cfg sekojoši:

$ nano ansible.cfg

Tagad ierakstiet šādās rindā iespējams.cfg konfigurācijas fails.

[dokeris]
vm4.nodekite.com

Kad esat pabeidzis, nospiediet + X sekoja un lai saglabātu iespējams.cfg failu.

Tagad pārbaudiet, vai no datora varat pingēt attālo Docker resursdatoru ar šādu komandu:

$ ansible all -u ansible -m ping

Kā redzat, es varu pingēt savu attālo Docker resursdatoru.

Kā redzat, man ir Docker 19.03.11 instalēta manā attālajā Ubuntu Docker resursdatorā.

Tagad, lai darbotos Ansible docker moduļi, tālvadības Docker resursdatorā jābūt instalētai Python Docker bibliotēkai. Šajā rakstā es izmantoju Ubuntu. Tātad, to es aprakstīšu.

Lai tālvadības Docker resursdatorā (Ubuntu) instalētu Python Docker bibliotēku, izveidojiet jaunu Ansible playbook install_docker_python_lib.yaml iekš playbooks / direktoriju šādi:

$ nano playbooks / install_docker_python_lib.yaml

Tagad ierakstiet šādās rindā install_docker_python_lib.yaml failu.

- saimnieki: dokeris
lietotājs: ansible
kļūt: Patiesi
uzdevumi:
- nosaukums: Pārliecinieties, vai ir instalēta pakotne python3-docker
apt:
nosaukums: python3-docker
stāvoklis: klāt
update_cache: True

Kad esat pabeidzis, nospiediet + X sekoja un lai saglabātu install_docker_python_lib.yaml failu.

Tagad palaidiet install_docker_python_lib.yaml playbook šādi:

$ ansible-playbook playbooks / install_docker_python_lib.yaml

Spēļu grāmatai vajadzētu darboties veiksmīgi, un tā tālvadības Docker resursdatorā instalēs Python Docker bibliotēku.

Vietējā Docker resursdatora automatizācijas konfigurēšana:

Ja Docker ir instalēts resursdatorā, kurā esat instalējis Ansible, un vēlaties to automatizēt, izmantojot Ansible, šī sadaļa ir domāta jums.

Vispirms izveidojiet jaunu Ansible playbook install_docker_python_lib.yaml iekš playbooks / direktoriju šādi:

$ nano playbooks / install_docker_python_lib.yaml

Tagad ierakstiet šādās rindā install_docker_python_lib.yaml failu.

- saimnieki: localhost
savienojums: vietējais
lietotājs: shovon
kļūt: Patiesi
uzdevumi:
- nosaukums: Pārliecinieties, vai ir instalēta pakotne python3-docker
apt:
nosaukums: python3-docker
stāvoklis: klāt
update_cache: True

Lūk, līnija lietotājs: shovon komplekti šovons kā lietotājs, kurš veiks uzdevumus. Jums būs savādāk. Tātad, noteikti nomainiet to uz savu pieteikšanās lietotājvārdu.

Docker resursdatora pieteikšanās lietotājvārdu varat atrast ar šādu komandu:

$ whoami

Kad esat pabeidzis, nospiediet + X sekoja un lai saglabātu install_docker_python_lib.yaml failu.

Tagad palaidiet install_docker_python_lib.yaml playbook šādi:

$ ansible-playbook - ask-pass - ask-tapti-pass
playbooks / install_docker_python_lib.yaml

Ansible lūgs jums pieteikšanās paroli lietotājam, kuru esat norādījis atskaņošanas grāmatā. Ievadiet pieteikšanās paroli un nospiediet .

Ansible jums lūgs arī BECOME / sudo paroli. Tam vajadzētu būt tādai pašai parolei kā jūsu pieteikšanās parole. Tātad, atstājiet to tukšu un nospiediet .

Spēļu grāmatai vajadzētu sākt darboties. Tas var aizņemt kādu laiku, lai pabeigtu.

Šajā brīdī atskaņošanas grāmatai jābūt veiksmīgai, un jāinstalē Python Docker bibliotēka.

Nepieciešamo pielāgojumu veikšana rotaļlietās:

Atkarībā no tā, vai pārvaldāt Docker konteinerus vietējā Docker resursdatorā vai attālā Docker resursdatorā, jums atbilstoši jāpielāgo atskaņošanas grāmatas.

No nākamajām šī raksta sadaļām es darbināšu atskaņošanas grāmatu piemērus attālajā Docker resursdatorā. Tātad visas atskaņošanas grāmatas sāksies ar šādām rindām:

- saimnieki: dokeris
lietotājs: ansible
uzdevumi:

Ja vēlaties palaist atskaņošanas grāmatas vietējā Docker resursdatorā, pārliecinieties, vai atskaņošanas grāmatas sākas ar šīm rindām.

- saimnieki: localhost
savienojums: vietējais
lietotājs: shovon
kļūt: Patiesi
uzdevumi:

Pēc tam nomainiet ar uzdevumiem, kurus vēlaties izpildīt, un saglabājiet atskaņošanas grāmatu, nospiežot + X sekoja un .

Jums arī ir jāpalaiž Ansible atskaņošanas grāmatas mazliet savādāk, ja vietējo Docker resursdatoru vēlaties pārvaldīt, izmantojot Ansible.

Ansible playbook varat palaist lokāli šādi:

$ ansible-playbook - ask-pass - ask-tapti-pass

Pārliecinieties, lai mainītu uz jūsu Ansible playbook YAML faila ceļu.

Docker konteinera apturēšana:

Ja jums ir darbojošs Docker konteiners un jūs zināt Docker konteinera ID vai nosaukumu, varat viegli apturēt šo Docker konteineru, izmantojot Ansible.

Šajā sadaļā es jums parādīšu, kā to izdarīt.

Pirmkārt, es gatavojos izveidot Nginx (attēla nosaukums) Docker konteiners http_servers1 (konteinera nosaukums) šādi:

$ docker run -p 8080: 80 -d --name http_server1 ninks

Kā redzat, Docker konteiners http_server1 skrien.

$ dokers ps

Lai apturētu Docker konteineru http_server1 izmantojot Ansible, izveidojiet jaunu atskaņošanas grāmatu stop_container.yaml iekš playbooks / direktoriju šādi:

$ nano playbooks / stop_container.yaml

Pēc tam ierakstiet šādas rindiņas stop_container.yaml rotaļu grāmata.

- saimnieki: dokeris
lietotājs: ansible
uzdevumi:
- nosaukums: apturiet konteineru http_server1
docker_container:
nosaukums: http_server1
stāvoklis: apturēts

Kad esat pabeidzis, nospiediet + X sekoja un lai saglabātu stop_container.yaml failu.

Lūk, Ansible docker_container modulis tiek izmantots, lai apturētu Docker konteineru http_servers1.

Tagad palaidiet stop_container.yaml playbook ar šādu komandu:

$ ansible-playbook playbooks / stop_container.yaml

Kā redzat, Docker konteiners http_servers1 vairs nedarbojas manā attālajā Docker resursdatorā.

$ dokers ps

Visus Docker konteinerus (darbojas, apturēti, apturēti) varat uzskaitīt ar šādu komandu:

$ docker ps - viss

Kā redzat, apturētais Docker konteiners http_servers1 ir uzskaitīts.

Visu braucošo Docker konteineru apturēšana:

Ja vēlaties apturēt visus Docker konteinerus, kas darbojas jūsu Docker resursdatorā, izmantojot Ansible, šī sadaļa ir domāta jums.

Pirmkārt, es izveidošu 3 Docker konteinerus (serveris1, serveris2, un serveris3), lai es varētu tos visus apturēt, izmantojot Ansible vēlāk.

Lai izveidotu serveris1 Docker konteinerā izpildiet šādu komandu:

$ docker palaist -p 8081: 80 -d --name server1 nginx

Lai izveidotu serveris2 Docker konteinerā izpildiet šādu komandu:

$ docker run -p 8082: 80 -d --name server2 nginx

Lai izveidotu serveris3 Docker konteinerā izpildiet šādu komandu:

$ docker run -p 8083: 80 -d --name server3 nginx

Kā redzat, serveris1, serveris2, un serveris3 Docker konteineri darbojas manā attālajā Docker resursdatorā.

$ dokers ps

Lai apturētu visus šos Docker konteinerus, izveidojiet jaunu atskaņošanas grāmatu stop_all_container.yaml jūsu playbooks / direktoriju šādi:

$ nano playbooks / stop_all_container.yaml

Tagad ierakstiet šādās rindā stop_all_container.yaml playbook fails.

- saimnieki: dokeris
lietotājs: ansible
uzdevumi:
- nosaukums: iegūstiet visu darbojošos konteineru sarakstu
docker_host_info:
konteineri: taisnība
reģistrēties: docker_info
- nosaukums: apturiet visus darbojošos konteinerus
docker_container:
nosaukums: 'vienums.Vārdi [0] | regex_replace ("^ /", "") '
stāvoklis: apturēts
cilpa: 'docker_info.konteineri '

Lai saglabātu stop_all_container.yaml failu, nospiediet + X sekoja un .

Šeit esmu definējis 2 uzdevumus.

Pirmajā uzdevumā tiek izmantots Ansible docker_host_info moduli, lai iegūtu visu darbojošos Docker konteineru sarakstu un tos glabātu docker_info mainīgais.

Otrais uzdevums notiek caur docker_info.konteineri masīvs atrod darbojošos Docker konteineru nosaukumus un aptur tos pa vienam.

Tagad palaidiet stop_all_container.yaml playbook ar šādu komandu:

$ ansible-playbook playbooks / stop_all_container.yaml

Spēļu grāmatai vajadzētu darboties veiksmīgi, kā redzat zemāk redzamajā ekrānuzņēmumā.

Kā redzat, manā attālajā Docker resursdatorā nav darbināmu Docker konteineru.

$ dokers ps

Visus Docker konteinerus (darbojas, apturēti, apstādināti) varat uzskaitīt ar šādu komandu:

$ docker ps - viss

Kā redzat, apturētie Docker konteineri serveris1, serveris2, un serveris3 ir uzskaitīti.

Apturiet visu dokeru konteineru palaišanu ar noteiktu attēlu:

Ja vēlaties apturēt visus Docker konteinerus, kuros darbojas noteikts Docker attēls, šī sadaļa ir domāta jums.

Vispirms izveidosim dažus manekena Docker konteinerus.

Es izveidošu 2 Docker konteinerus (nginx1 un nginx2) izmantojot Nginx Docker attēls un 2 Docker konteineri (http1 un http2) izmantojot httpd Dokera attēls demonstrācijai.

Lai izveidotu nginx1 Docker konteiners, izmantojot Nginx Docker attēls, izpildiet šādu komandu:

$ docker palaist -d -p 8081: 80 --nosaukums nginx1 nginx

Lai izveidotu nginx2 Docker konteiners, izmantojot Nginx Docker attēls, izpildiet šādu komandu:

$ docker palaist -d -p 8082: 80 --nosaukums nginx2 nginx

Lai izveidotu http1 Docker konteiners, izmantojot httpd Docker attēls, izpildiet šādu komandu:

$ docker palaist -d -p 8091: 80 - nosaukums http1 httpd

Lai izveidotu http2 Docker konteiners, izmantojot httpd Docker attēls, izpildiet šādu komandu:

$ docker palaist -d -p 8092: 80 - nosaukums http2 httpd

Kā redzat, nginx1, nginx2, http1, un http2 Docker konteineri darbojas manā attālajā Docker resursdatorā.

Lai apturētu visus Docker konteinerus, kas darbojas ar noteiktu Docker attēlu (pieņemsim, ka, ninks), izveidojiet jaunu Docker playbook stop_all_image_containers.yaml iekš playbooks / direktoriju šādi:

$ nano playbooks / stop_all_image_containers.yaml

Tagad ierakstiet šādās rindā stop_all_image_containers.yaml failu.

- saimnieki: dokeris
lietotājs: ansible
uzdevumi:
- nosaukums: iegūstiet visu darbojošos konteineru sarakstu
docker_host_info:
konteineri: taisnība
reģistrēties: docker_info
- nosaukums: pārtrauciet visu konteineru darbību ar nginx attēlu
docker_container:
nosaukums: 'vienums.Vārdi [0] | regex_replace ("^ /", "") '
stāvoklis: apturēts
kad: vienums.Attēls == 'nginx'
cilpa: 'docker_info.konteineri '

Kad esat pabeidzis, nospiediet + X sekoja un lai saglabātu stop_all_image_containers.yaml failu.

Šeit esmu pievienojis 2 uzdevumus.

Pirmajā uzdevumā tiek izmantots Ansible docker_host_info moduli, lai iegūtu visu darbojošos Docker konteineru sarakstu un tos glabātu docker_info mainīgais.

Otrais uzdevums notiek caur docker_info.konteineri masīvs atrod darbojošos Docker konteineru nosaukumus un palaiž docker_container moduli katram darbojošam konteineram tikai tad, ja konteinera attēla nosaukums ir Nginx. Tad tas aptur saskaņotos Docker konteinerus.

Otrajā uzdevumā šī rinda tiek izmantota, lai pārbaudītu, vai Docker konteinerā darbojas Nginx attēls. Ja vēlaties, varat mainīt to uz citu Docker attēla nosaukumu.

Tagad palaidiet stop_all_image_containers.yaml playbook šādi:

$ ansible-playbook playbooks / stop_all_image_containers.yaml

Kā redzat, tikai Nginx konteineri (nginx1 un nginx2) ir modificēti (apturēti). The httpd konteineri (http1 un http2) tiek izlaisti.

Kā redzat, nē Nginx Docker konteineri darbojas manā attālajā Docker resursdatorā. Tikai httpd Dokeru konteineri (http1 un http2) skrien.

$ dokers ps

Visus Docker konteinerus (darbojas, apturēti, apstādināti) varat uzskaitīt ar šādu komandu:

$ docker ps - viss

Kā redzat, apturētie Docker konteineri nginx1 un nginx2 ir uzskaitīti.

Secinājums:

Šajā rakstā es jums parādīju, kā apturēt darbojošos Docker konteineru, visus Docker konteinerus, kuros darbojas noteikts Docker attēls, un visus jūsu Docker resursdatora palaistos Docker konteinerus. Lai to izdarītu, esmu izmantojis Ansible docker_container un docker_host_info šī raksta moduļi.

Lai uzzinātu vairāk par šiem moduļiem, apmeklējiet šādas iespējamās oficiālās dokumentācijas lapas.

[1] docker_container - pārvaldiet dokeru konteinerus
[2] docker_host_info - izgūst faktus par docker resursdatoru un pakalpojumu objektu sarakstus

Atdariniet peles klikšķus, virzot kursoru, izmantojot operētājsistēmā Windows 10 bezklikšķu peli
Peles vai tastatūras lietošana nepareizā pozā, ja to lieto pārmērīgi daudz, var izraisīt daudz veselības problēmu, tostarp spriedzi, karpālā kanāla si...
Pievienojiet peles žestus operētājsistēmai Windows 10, izmantojot šos bezmaksas rīkus
Pēdējos gados datori un operētājsistēmas ir ievērojami attīstījušās. Bija laiks, kad lietotājiem bija jāizmanto komandas, lai pārvietotos pa failu pār...
Kontrolējiet un pārvaldiet peles kustību starp vairākiem monitoriem sistēmā Windows 10
Dual Display Mouse Manager ļauj kontrolēt un konfigurēt peles kustību starp vairākiem monitoriem, palēninot tās kustību robežas tuvumā. Windows 10/8 ļ...