Možné

Ako zastaviť všetky možné doky v dokoch

Ako zastaviť všetky možné doky v dokoch
Ansible má veľa modulov na automatizáciu vášho hostiteľa Docker, kontajnerov, zväzkov, sietí atď. Ak chcete zastaviť svoje bežiace kontajnery Docker, môžete to urobiť tiež.

V tomto článku vám ukážem, ako zastaviť konkrétny kontajner Docker. Tiež ti ukážem, ako zastaviť všetky bežiace Dockerove kontajnery alebo všetky Dockerove kontajnery, ktoré používajú konkrétny Docker obrázok pomocou Ansible. Takže poďme na to.

Predpoklady:

Ak si chcete vyskúšať príklady tohto článku,

1) Musíte mať v počítači nainštalovaný program Ansible.
2) Musíte mať v počítači nainštalovaný Docker alebo vzdialeného hostiteľa Ubuntu.
3) Vo svojom hostiteľovi Docker musíte mať nainštalovanú knižnicu Python Docker.
4) Musíte nakonfigurovať hostiteľa Dockeru pre automatizáciu Ansible.

POZNÁMKA: Hostiteľ Docker je počítač, na ktorom máte nainštalovaný Docker.

Existuje veľa článkov o LinuxHint venovaných inštalácii Ansible a konfigurácii hostiteľov pre automatizáciu Ansible a inštalácii Dockeru. V prípade potreby ich môžete skontrolovať.

Vytvorenie adresára projektu:

Aby boli všetky súbory a adresáre, ktoré v tomto článku vytvoríme, usporiadané, je dobré vytvoriť adresár projektu.

Vytvorenie adresára projektu docker1 / v aktuálnom pracovnom adresári spustite nasledujúci príkaz:

$ mkdir -pv docker1 / príručky

Teraz prejdite na ikonu docker1 / adresár projektu nasledovne:

$ cd docker1 /

Konfigurácia možnosti vzdialenej automatizácie hostiteľa Docker:

Ak máte Docker nainštalovaný na vzdialenom hostiteľovi Ubuntu, ktorého chcete automatizovať pomocou Ansible, potom je táto časť určená pre vás.

Najskôr vytvorte Ansible inventárny súbor hostitelia nasledujúcim príkazom:

$ nano hostitelia

Teraz pridajte adresu IP alebo DNS názov vášho hostiteľa Docker do priečinka hostitelia inventarizačný súbor nasledovne.

[ukotviteľný panel]
vm4.nodekite.com

V mojom prípade je názov DNS môjho hostiteľa Ubuntu Docker vm4.nodekite.com. U teba to bude iné. Nezabudnite ho teda podľa potreby vymeniť.

Po dokončení stlačte + X nasledovaný Y a zachrániť hostitelia spis.

Teraz vytvorte konfiguračný súbor Ansible zodpovedné.porov nasledovne:

$ nano zodpovedné.porov

Teraz zadajte nasledujúce riadky do súboru zodpovedné.porov konfiguračný súbor.

[ukotviteľný panel]
vm4.nodekite.com

Po dokončení stlačte + X nasledovaný Y a zachrániť zodpovedné.porov spis.

Teraz skontrolujte, či pomocou príkazu môžete pomocou príkazu ping na vzdialeného hostiteľa Dockeru z počítača:

$ ansible všetko -u ansible -m ping

Ako vidíte, môžem spustiť príkaz ping na môjho vzdialeného hostiteľa Dockeru.

Ako vidíte, mám Docker 19.03.11 nainštalovaný na mojom vzdialenom hostiteľovi Ubuntu Docker.

Teraz musíte mať na svojom vzdialenom hostiteľovi Dockeru nainštalovanú knižnicu Python Docker, aby mohli docker moduly Ansible fungovať. V tomto článku používam Ubuntu. Týmto sa teda budem zaoberať.

Ak chcete nainštalovať knižnicu Python Docker na vzdialeného hostiteľa Dockeru (Ubuntu), vytvorte nový playbook Ansible install_docker_python_lib.yaml v knihy o hre / adresár takto:

$ nano playbooks / install_docker_python_lib.yaml

Teraz zadajte nasledujúce riadky do súboru install_docker_python_lib.yaml spis.

- hostitelia: ukotviteľný panel
užívateľ: zodpovedný
stať sa: Pravda
úlohy:
- name: Zaistite, aby bol nainštalovaný balík python3-docker
výstižný:
názov: python3-docker
stav: prítomný
update_cache: Pravda

Po dokončení stlačte + X nasledovaný Y a zachrániť install_docker_python_lib.yaml spis.

Teraz spustite install_docker_python_lib.yaml príručka takto:

$ ansible-playbook playbooks / install_docker_python_lib.yaml

Playbook by sa mal úspešne spustiť a nainštaluje knižnicu Python Docker na vášho vzdialeného hostiteľa Docker.

Konfigurácia možnosti pre miestnu automatizáciu hostiteľa Docker:

Ak máte Docker nainštalovaný na hostiteľovi, kde máte nainštalovaný Ansible, a chcete ho automatizovať pomocou Ansible, potom je táto časť určená pre vás.

Najskôr si vytvorte nový playbook Ansible install_docker_python_lib.yaml v knihy o hre / adresár takto:

$ nano playbooks / install_docker_python_lib.yaml

Teraz zadajte nasledujúce riadky do súboru install_docker_python_lib.yaml spis.

- hostitelia: localhost
pripojenie: miestne
užívateľ: shovon
stať sa: Pravda
úlohy:
- name: Zaistite, aby bol nainštalovaný balík python3-docker
výstižný:
názov: python3-docker
stav: prítomný
update_cache: Pravda

Tu čiara užívateľ: shovon sady šovon ako užívateľ, ktorý bude vykonávať úlohy. U teba to bude iné. Nezabudnite ho preto zmeniť na svoje prihlasovacie meno.

Prihlasovacie používateľské meno hostiteľa Dockeru nájdete pomocou nasledujúceho príkazu:

$ whoami

Po dokončení stlačte + X nasledovaný Y a zachrániť install_docker_python_lib.yaml spis.

Teraz spustite install_docker_python_lib.yaml príručka takto:

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

Ansible vás požiada o prihlasovacie heslo používateľa, ktorého ste zadali v príručke. Zadajte prihlasovacie heslo a stlačte .

Ansible od vás tiež požiada o BECOME / sudo heslo. Malo by to byť rovnaké heslo ako vaše prihlasovacie heslo. Nechajte ho teda prázdne a stlačte .

Playbook by sa mal spustiť. Dokončenie môže chvíľu trvať.

V tomto okamihu by mala byť príručka úspešná a mala by byť nainštalovaná knižnica Python Docker.

Nevyhnutné úpravy v príručkách:

V závislosti na tom, či spravujete kontajnery Dockeru na miestnom hostiteľovi Dockeru alebo vzdialenom hostiteľovi Dockeru, musíte zodpovedajúcim spôsobom upraviť svoje príručky na čítanie.

V ďalších častiach tohto článku spustím ukážkové príručky na vzdialenom hostiteľovi Dockeru. Všetky príručky teda budú začínať nasledujúcimi riadkami:

- hostitelia: ukotviteľný panel
užívateľ: zodpovedný
úlohy:

Ak chcete prevádzkovať príručky na vašom miestnom hostiteľovi Dockeru, skontrolujte, či sa príručky namiesto nich začínajú nasledujúcimi riadkami.

- hostitelia: localhost
pripojenie: miestne
užívateľ: shovon
stať sa: Pravda
úlohy:

Potom vymeňte s úlohami, ktoré chcete spustiť, a uložte príručku stlačením + X nasledovaný Y a .

Ak sa chystáte lokálne spravovať hostiteľa Dockeru pomocou programu Ansible, musíte prevádzkovať príručky Ansible trochu inak.

Playbook Ansible môžete lokálne spustiť nasledovne:

$ ansible-playbook --ask-pass --ask-become-pass

Nezabudnite to zmeniť na cestu k vášmu súboru Ansible playbook YAML.

Zastavenie kontajnera Docker:

Ak máte spustený kontajner Docker a poznáte ID alebo názov kontajnera Docker, môžete ho ľahko zastaviť pomocou nástroja Ansible.

V tejto časti vám ukážem, ako na to.

Najskôr vytvorím Nginx (názov obrázka) Docker container http_server1 (názov kontajnera) takto:

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

Ako vidíte, kontajner Docker http_server1 beží.

$ docker ps

Na zastavenie kontajnera Docker http_server1 pomocou Ansible vytvorte nový playbook stop_container.yaml v knihy o hre / adresár takto:

$ nano playbooks / stop_container.yaml

Potom zadajte nasledujúce riadky do súboru stop_container.yaml hracia kniha.

- hostitelia: ukotviteľný panel
užívateľ: zodpovedný
úlohy:
- name: Zastavte kontajner http_server1
docker_container:
meno: http_server1
stav: zastavený

Po dokončení stlačte + X nasledovaný Y a zachrániť stop_container.yaml spis.

Tu je možné docker_container modul slúži na zastavenie Docker kontajnera http_server1.

Teraz spustite stop_container.yaml príručka s nasledujúcim príkazom:

$ ansible-playbook playbooks / stop_container.yaml

Ako vidíte, kontajner Docker http_server1 už na mojom vzdialenom hostiteľovi Docker nefunguje.

$ docker ps

Všetky zoznamy kontajnerov Docker (spustené, pozastavené, zastavené) môžete zobraziť pomocou nasledujúceho príkazu:

$ docker ps - všetko

Ako vidíte, zastavený Dockerov kontajner http_server1 je uvedený.

Zastavenie všetkých spustených kontajnerov Docker:

Ak chcete zastaviť všetky kontajnery Docker bežiace na vašom hostiteľovi Docker pomocou programu Ansible, potom je táto časť určená pre vás.

Najskôr vytvorím 3 Dockerove kontajnery (server1, server2, a server3), aby som ich všetkých mohol prestať používať pomocou aplikácie Ansible neskôr.

Ak chcete vytvoriť server1 Kontajner Docker, spustite nasledujúci príkaz:

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

Ak chcete vytvoriť server2 Kontajner Docker, spustite nasledujúci príkaz:

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

Ak chcete vytvoriť server3 Kontajner Docker, spustite nasledujúci príkaz:

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

Ako vidíte, server1, server2, a server3 Na mojom vzdialenom hostiteľovi Docker bežia Dockerove kontajnery.

$ docker ps

Ak chcete zastaviť všetky tieto Dockerove kontajnery, vytvorte nový playbook stop_all_container.yaml vo vašom knihy o hre / adresár takto:

$ nano playbooks / stop_all_container.yaml

Teraz zadajte nasledujúce riadky do súboru stop_all_container.yaml súbor playbooku.

- hostitelia: ukotviteľný panel
užívateľ: zodpovedný
úlohy:
- name: Získajte zoznam všetkých spustených kontajnerov
docker_host_info:
kontajnery: Pravda
registrovať: docker_info
- name: Zastaviť všetky spustené kontajnery
docker_container:
meno: 'položka.Mená [0] | regex_replace ("^ /", "") '
stav: zastavený
slučka: 'docker_info.kontajnery '

Ak chcete uložiť stop_all_container.yaml súbor, stlačte + X nasledovaný Y a .

Tu som definoval 2 úlohy.

Prvá úloha používa Ansible docker_host_info modul získate zoznam všetkých spustených kontajnerov Docker a uložíte ich do priečinka docker_info premenná.

Druhá úloha prechádza slučkou docker_info.nádob pole nájde spustené názvy kontajnerov Docker a zastaví ich jeden po druhom.

Teraz spustite stop_all_container.yaml príručka s nasledujúcim príkazom:

$ ansible-playbook playbooks / stop_all_container.yaml

Príručka by sa mala úspešne spustiť, ako vidíte na snímke obrazovky nižšie.

Ako vidíte, na mojom vzdialenom hostiteľovi Docker nie sú spustené žiadne Dockerove kontajnery.

$ docker ps

Všetky zoznamy kontajnerov Docker (spustené, pozastavené, zastavené) môžete zobraziť pomocou nasledujúceho príkazu:

$ docker ps - všetko

Ako vidíte, zastavené Dockerove kontajnery server1, server2, a server3 sú uvedené.

Zastavenie spustenia konkrétneho obrázka v všetkých kontajneroch dockeru:

Ak chcete zastaviť spustenie všetkých Dockerových kontajnerov na konkrétnom obrázku Dockeru, potom je táto časť určená pre vás.

Najskôr si vytvorme fiktívne kontajnery Dockeru.

Vytvorím 2 Dockerove kontajnery (nginx1 a nginx2) pomocou Nginx Docker image a 2 Dockerove kontajnery (http1 a http2) pomocou httpd Dockerov obrázok pre demonštráciu.

Ak chcete vytvoriť nginx1 Kontajner Docker pomocou Nginx Docker image, spustite nasledujúci príkaz:

$ docker run -d -p 8081: 80 - meno nginx1 nginx

Ak chcete vytvoriť nginx2 Kontajner Docker pomocou Nginx Docker image, spustite nasledujúci príkaz:

$ docker run -d -p 8082: 80 - meno nginx2 nginx

Ak chcete vytvoriť http1 Kontajner Docker pomocou httpd Docker image, spustite nasledujúci príkaz:

$ docker run -d -p 8091: 80 - názov http1 httpd

Ak chcete vytvoriť http2 Kontajner Docker pomocou httpd Docker image, spustite nasledujúci príkaz:

$ docker run -d -p 8092: 80 - názov http2 httpd

Ako vidíte, nginx1, nginx2, http1, a http2 Na mojom vzdialenom hostiteľovi Docker bežia Dockerove kontajnery.

Ak chcete zastaviť spustenie všetkých Dockerových kontajnerov s konkrétnym obrázkom Dockeru (povedzme, nginx), vytvorte nový playbook Dockeru stop_all_image_containers.yaml v knihy o hre / adresár takto:

$ nano playbooks / stop_all_image_containers.yaml

Teraz zadajte nasledujúce riadky do súboru stop_all_image_containers.yaml spis.

- hostitelia: ukotviteľný panel
užívateľ: zodpovedný
úlohy:
- name: Získajte zoznam všetkých spustených kontajnerov
docker_host_info:
kontajnery: Pravda
registrovať: docker_info
- name: Zastaviť vo všetkých kontajneroch spustený obrázok nginx
docker_container:
meno: 'položka.Mená [0] | regex_replace ("^ /", "") '
stav: zastavený
kedy: položka.Obrázok == 'nginx'
slučka: 'docker_info.kontajnery '

Po dokončení stlačte + X nasledovaný Y a zachrániť stop_all_image_containers.yaml spis.

Tu som pridal 2 úlohy.

Prvá úloha používa Ansible docker_host_info modul získate zoznam všetkých spustených kontajnerov Docker a uložíte ich do priečinka docker_info premenná.

Druhá úloha prechádza slučkou docker_info.nádob pole nájde spustené názvy kontajnerov Docker a spustí súbor docker_container modul pre každý bežiaci kontajner, iba ak je názov obrázka kontajnera Nginx. Potom zastaví zhodné kontajnery Dockeru.

V druhej úlohe sa v nasledujúcom riadku kontroluje, či je v kontajneri Docker spustený server Nginx obrázok. Ak chcete, môžete ho zmeniť na iný názov obrázka Docker.

Teraz spustite stop_all_image_containers.yaml príručka takto:

$ ansible-playbook playbooks / stop_all_image_containers.yaml

Ako vidíte, iba Nginx nádoby (nginx1 a nginx2) sú upravené (zastavené). The httpd nádoby (http1 a http2) sú preskočené.

Ako vidíte, nie Nginx Na mojom vzdialenom hostiteľovi Docker bežia Dockerove kontajnery. Len httpd Kontajnerov Docker (http1 a http2) beží.

$ docker ps

Všetky zoznamy kontajnerov Docker (spustené, pozastavené, zastavené) môžete zobraziť pomocou nasledujúceho príkazu:

$ docker ps - všetko

Ako vidíte, zastavené Dockerove kontajnery nginx1 a nginx2 sú uvedené.

Záver:

V tomto článku som vám ukázal, ako zastaviť bežiaci kontajner Docker, všetky kontajnery Docker, na ktorých je spustený konkrétny obrázok Docker, a všetky bežiace Docker kontajnery vášho hostiteľa Docker. K tomu som použil Ansible docker_container a docker_host_info modulov v tomto článku.

Viac informácií o týchto moduloch nájdete na nasledujúcich stránkach oficiálnej dokumentácie Ansible.

[1] docker_container - Správa kontajnerov docker
[2] docker_host_info - Načíta fakty o hostiteľovi ukotvenia a zoznamy objektov služieb

Kurzor pri písaní v systéme Windows 10 skáče alebo sa pohybuje náhodne
Ak zistíte, že kurzor myši skáče alebo sa pohybuje sám, automaticky a náhodne pri písaní na notebooku alebo počítači so systémom Windows, niektoré z t...
Ako zmeniť smer posúvania myši a touchpadu v systéme Windows 10
Myš a TouchpadNielenže uľahčujú výpočty, ale sú aj efektívnejšie a menej časovo náročné. Nemôžeme si predstaviť život bez týchto zariadení, ale je pra...
Ako zmeniť veľkosť, farbu a schému ukazovateľa myši a kurzora v systéme Windows 10
Ukazovateľ myši a kurzor vo Windows 10 sú veľmi dôležité aspekty operačného systému. Dá sa to povedať aj pre iné operačné systémy, takže v skutočnosti...