Negalima

Kaip sustabdyti visus „Docker“ konteinerius naudojant „Ansible“

Kaip sustabdyti visus „Docker“ konteinerius naudojant „Ansible“
"Ansible" turi daug modulių, skirtų automatizuoti jūsų "Docker" pagrindinį kompiuterį, konteinerius, tomus, tinklus ir kt. Jei norite sustabdyti veikiančius „Docker“ konteinerius, taip pat galite tai padaryti.

Šiame straipsnyje aš jums parodysiu, kaip sustabdyti konkretų „Docker“ konteinerį. Taip pat parodysiu, kaip sustabdyti visus veikiančius „Docker“ konteinerius arba visus „Docker“ konteinerius, rodančius konkretų „Docker“ vaizdą naudojant „Ansible“. Taigi, pradėkime.

Būtinos sąlygos:

Jei norite išbandyti šio straipsnio pavyzdžius,

1) Savo kompiuteryje turite būti įdiegę „Ansible“.
2) Savo kompiuteryje arba nuotoliniame „Ubuntu“ pagrindiniame kompiuteryje turite būti įdiegę „Docker“.
3) „Docker“ pagrindiniame kompiuteryje turi būti įdiegta „Python Docker“ biblioteka.
4) Turite sukonfigūruoti „Docker“ pagrindinį kompiuterį, kad jis būtų automatizuotas.

PASTABA: „Docker“ vedėjas yra kompiuteris, kuriame įdiegėte „Docker“.

„LinuxHint“ yra daug straipsnių, skirtų „Ansible“ diegimui ir kompiuterių konfigūravimui „Ansible“ automatizavimui bei „Docker“ diegimui. Jei reikia, galite juos patikrinti.

Projektų katalogo kūrimas:

Kad visi failai ir katalogas, kuriuos sukursime šiame straipsnyje, būtų sutvarkyti, patartina sukurti projekto katalogą.

Norėdami sukurti projekto katalogą docker1 / dabartiniame darbo kataloge vykdykite šią komandą:

$ mkdir -pv docker1 / grojaraščiai

Dabar eikite į docker1 / projekto katalogą taip:

$ cd docker1 /

Konfigūruoti nuotolinio doko pagrindinio kompiuterio automatizavimą:

Jei „Docker“ yra įdiegtas nuotoliniame „Ubuntu“ pagrindiniame kompiuteryje, kurį norite automatizuoti naudodami „Ansible“, tada šis skyrius skirtas jums.

Pirmiausia sukurkite Ansible inventoriaus failą šeimininkai su tokia komanda:

$ nano šeimininkai

Dabar pridėkite „Docker“ pagrindinio kompiuterio IP adresą arba DNS pavadinimą vedėjų inventoriaus byla taip.

[dokininkas]
vm4.nodekitas.com

Mano atveju mano „Ubuntu Docker“ pagrindinio kompiuterio DNS vardas yra vm4.nodekitas.com. Jums bus kitaip. Taigi, būtinai jį pakeiskite.

Baigę paspauskite + X paskui Y ir išsaugoti šeimininkai failą.

Dabar sukurkite Ansible konfigūracijos failą įmanoma.plg taip:

$ nano galima.plg

Dabar įveskite šias eilutes įmanoma.plg konfigūracijos failas.

[dokininkas]
vm4.nodekitas.com

Baigę paspauskite + X paskui Y ir išsaugoti įmanoma.plg failą.

Dabar patikrinkite, ar galite perkelti nuotolinį „Docker“ pagrindinį kompiuterį iš savo kompiuterio naudodami šią komandą:

$ ansible all -u ansible -m ping

Kaip matote, galiu perduoti nuotolinio „Docker“ pagrindinio kompiuterio duomenis.

Kaip matote, turiu „Docker 19“.03.11 įdiegta mano nuotoliniame „Ubuntu Docker“ pagrindiniame kompiuteryje.

Dabar, norėdami veikti „Ansible Docker“ moduliuose, turite turėti „Python Docker“ biblioteką, esančią jūsų nuotoliniame „Docker“ pagrindiniame kompiuteryje. Šiame straipsnyje aš naudoju „Ubuntu“. Taigi, tai aš padarysiu.

Norėdami įdiegti „Python Docker“ biblioteką nuotoliniame „Docker“ pagrindiniame kompiuteryje („Ubuntu“), sukurkite naują „Ansible“ grojaraštį install_docker_python_lib.yaml viduje konors grojaraščiai / katalogą taip:

„$ nano playbooks“ / install_docker_python_lib.yaml

Dabar įveskite šias eilutes install_docker_python_lib.yaml failą.

- vedėjai: dokininkas
vartotojas: ansible
tapti: Tiesa
užduotys:
- pavadinimas: Įsitikinkite, kad yra įdiegtas python3-docker paketas
apt:
vardas: python3-docker
būsena: dabartis
„update_cache“: tiesa

Baigę paspauskite + X paskui Y ir išsaugoti install_docker_python_lib.yaml failą.

Dabar paleiskite install_docker_python_lib.yaml pjesė taip:

$ ansible-playbook playbooks / install_docker_python_lib.yaml

Grojaraštis turėtų sėkmingai veikti ir ji įdiegs „Python Docker“ biblioteką jūsų nuotoliniame „Docker“ pagrindiniame kompiuteryje.

Konfigūravimas „Ansible for Local Docker Host Automation“:

Jei „Docker“ įdiegėte pagrindiniame kompiuteryje, kuriame įdiegėte „Ansible“, ir norite jį automatizuoti naudodami „Ansible“, tada šis skyrius skirtas jums.

Pirmiausia sukurkite naują „Ansible“ pjesę install_docker_python_lib.yaml viduje konors grojaraščiai / katalogą taip:

„$ nano playbooks“ / install_docker_python_lib.yaml

Dabar įveskite šias eilutes install_docker_python_lib.yaml failą.

- šeimininkai: vietinis šeimininkas
ryšys: vietinis
vartotojas: shovon
tapti: Tiesa
užduotys:
- pavadinimas: Įsitikinkite, kad yra įdiegtas python3-docker paketas
apt:
vardas: python3-docker
būsena: dabartis
„update_cache“: tiesa

Čia, linija vartotojas: shovon rinkiniai shovon kaip vartotojas, kuris vykdys užduotis. Jums bus kitaip. Taigi, būtinai pakeiskite jį į savo prisijungimo vardą.

„Docker“ kompiuterio prisijungimo vardą galite rasti naudodami šią komandą:

$ whoami

Baigę paspauskite + X paskui Y ir išsaugoti install_docker_python_lib.yaml failą.

Dabar paleiskite install_docker_python_lib.yaml pjesė taip:

$ ansible-playbook --ask-pass --ask-tapti-pass
grojaraščiai / install_docker_python_lib.yaml

„Ansible“ paprašys jūsų vartotojo, kurį nurodėte grojaraštyje, prisijungimo slaptažodžio. Įveskite prisijungimo slaptažodį ir paspauskite .

Ansible taip pat paprašys jūsų tapti BECOME / sudo slaptažodžiu. Tai turėtų būti tas pats slaptažodis kaip ir jūsų prisijungimo slaptažodis. Taigi, palikite tuščią ir paspauskite .

Pjesių knyga turėtų pradėti veikti. Gali praeiti šiek tiek laiko.

Šiuo metu grojaraštis turėtų būti sėkmingas ir turėtų būti įdiegta „Python Docker“ biblioteka.

Būtinas grojaraščių koregavimas:

Priklausomai nuo to, ar valdote „Docker“ konteinerius vietiniame „Docker“ pagrindiniame kompiuteryje, ar nuotoliniame „Docker“ pagrindiniame kompiuteryje, turite atitinkamai pritaikyti grojaraščius.

Kitose šio straipsnio skiltyse paleisiu vadovėlių pavyzdžius nuotoliniame „Docker“ pagrindiniame kompiuteryje. Taigi, visi grojaraščiai prasidės šiomis eilutėmis:

- vedėjai: dokininkas
vartotojas: ansible
užduotys:

Jei norite paleisti grojaraščius vietiniame „Docker“ pagrindiniame kompiuteryje, įsitikinkite, kad grojaraščiai prasideda šiomis eilutėmis.

- šeimininkai: vietinis šeimininkas
ryšys: vietinis
vartotojas: shovon
tapti: Tiesa
užduotys:

Tada pakeiskite su užduotimis, kurias norite paleisti, ir išsaugokite grojaraštį paspausdami + X paskui Y ir .

Taip pat turite šiek tiek kitaip paleisti „Ansible“ grojaraščius, jei ketinate valdyti „Docker“ pagrindinį kompiuterį vietoje naudodami „Ansible“.

„Ansible playbook“ galite paleisti vietoje taip:

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

Būtinai pakeiskite į jūsų „Ansible playbook“ YAML failo kelią.

„Docker“ konteinerio sustabdymas:

Jei turite veikiantį „Docker“ konteinerį ir žinote „Docker“ konteinerio ID arba pavadinimą, galite lengvai sustabdyti „Docker“ konteinerį naudodami „Ansible“.

Šiame skyriuje aš jums parodysiu, kaip tai padaryti.

Pirma, aš ketinu sukurti Nginx (paveikslėlio pavadinimas) „Docker“ konteineris http_serveris1 (konteinerio pavadinimas) taip:

$ docker run -p 8080: 80 -d --name http_serveris1 Nginx

Kaip matote, „Docker“ konteineris http_serveris1 bėga.

$ dokeris ps

Norėdami sustabdyti „Docker“ konteinerį http_serveris1 naudodami „Ansible“ sukurkite naują pjesę stop_container.yaml viduje konors grojaraščiai / katalogą taip:

„$ nano“ grojaraščiai / stop_container.yaml

Tada įveskite šias eilutes stop_container.yaml pjesė.

- vedėjai: dokininkas
vartotojas: ansible
užduotys:
- pavadinimas: sustabdykite „http_server1“ sudėtinį rodinį
docker_container:
vardas: http_serveris1
būsena: sustabdyta

Baigę paspauskite + X paskui Y ir išsaugoti stop_container.yaml failą.

Čia, Ansible docker_container modulis naudojamas „Docker“ konteineriui sustabdyti http_serveris1.

Dabar paleiskite stop_container.yaml grojaraštis su šia komanda:

$ ansible-playbook playbooks / stop_container.yaml

Kaip matote, „Docker“ konteineris http_serveris1 nebeveikia mano nuotolinio „Docker“ kompiuterio.

$ dokeris ps

Galite išvardyti visus „Docker“ sudėtinius rodinius (veikia, pristabdyti, sustabdyti) naudodami šią komandą:

$ docker ps - visi

Kaip matote, sustabdytas „Docker“ konteineris http_serveris1 yra išvardytas.

Visų veikiančių „Docker“ konteinerių sustabdymas:

Jei norite sustabdyti visus „Docker“ konteinerius, veikiančius jūsų „Docker“ pagrindiniame kompiuteryje, naudodami „Ansible“, šis skyrius skirtas jums.

Pirmiausia ketinu sukurti 3 „Docker“ konteinerius (serveris1, serveris2, ir serveris3), kad vėliau galėčiau juos visus sustabdyti naudodamas „Ansible“.

Norėdami sukurti serveris1 „Docker“ konteineris, vykdykite šią komandą:

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

Norėdami sukurti serveris2 „Docker“ konteineris, vykdykite šią komandą:

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

Norėdami sukurti serveris3 „Docker“ konteineris, vykdykite šią komandą:

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

Kaip matote, serveris1, serveris2, ir serveris3 „Docker“ konteineriai veikia mano nuotoliniame „Docker“ pagrindiniame kompiuteryje.

$ dokeris ps

Norėdami sustabdyti visus tuos „Docker“ konteinerius, sukurkite naują grojaraštį stop_all_container.yaml jūsų grojaraščiai / katalogą taip:

„$ nano“ grojaraščiai / stop_all_container.yaml

Dabar įveskite šias eilutes stop_all_container.yaml pjesės failas.

- vedėjai: dokininkas
vartotojas: ansible
užduotys:
- pavadinimas: Gaukite visų veikiančių konteinerių sąrašą
docker_host_info:
konteineriai: tiesa
registruotis: docker_info
- pavadinimas: sustabdykite visus veikiančius konteinerius
docker_container:
pavadinimas: 'elementas.Vardai [0] | regex_replace ("^ /", "") '
būsena: sustabdyta
kilpa: 'docker_info.konteineriai '

Norėdami išsaugoti stop_all_container.yaml failą, paspauskite + X paskui Y ir .

Čia aš apibrėžiau 2 užduotis.

Pirmoji užduotis naudoja „Ansible“ docker_host_info modulį, kad gautumėte visų veikiančių „Docker“ konteinerių sąrašą ir išsaugotumėte juos docker_info kintamasis.

Antroji užduotis vyksta per docker_info.konteineriai masyvas suranda veikiančius „Docker“ konteinerių pavadinimus ir po vieną juos sustabdo.

Dabar paleiskite stop_all_container.yaml grojaraštis su šia komanda:

$ ansible-playbook playbooks / stop_all_container.yaml

Žaidimų knyga turėtų būti sėkmingai paleista, kaip matote toliau pateiktoje ekrano kopijoje.

Kaip matote, mano nuotoliniame „Docker“ pagrindiniame kompiuteryje nėra veikiančių „Docker“ konteinerių.

$ dokeris ps

Galite išvardyti visus „Docker“ sudėtinius rodinius (veikia, pristabdyti, sustabdyti) naudodami šią komandą:

$ docker ps - visi

Kaip matote, sustabdyti „Docker“ konteineriai serveris1, serveris2, ir serveris3 yra išvardyti.

Sustabdykite visus „Docker“ konteinerius, rodančius konkretų vaizdą:

Jei norite sustabdyti visus „Docker“ konteinerius, kuriuose rodomas konkretus „Docker“ vaizdas, šis skyrius skirtas jums.

Pirmiausia sukurkime keletą manekeno „Docker“ konteinerių.

Sukursiu 2 „Docker“ konteinerius (nginx1 ir nginx2) naudojant Nginx „Docker“ vaizdas ir 2 „Docker“ konteineriai (http1 ir http2) naudojant httpd Dokerio vaizdas demonstracijai.

Norėdami sukurti nginx1 Docker konteineris naudojant Nginx „Docker“ vaizdas, vykdykite šią komandą:

$ docker paleisti -d -p 8081: 80 - vardas nginx1 nginx

Norėdami sukurti nginx2 Docker konteineris naudojant Nginx „Docker“ vaizdas, vykdykite šią komandą:

$ docker paleisti -d -p 8082: 80 --name nginx2 nginx

Norėdami sukurti http1 Docker konteineris naudojant httpd „Docker“ vaizdas, vykdykite šią komandą:

$ docker paleisti -d -p 8091: 80 - vardas http1 httpd

Norėdami sukurti http2 Docker konteineris naudojant httpd „Docker“ vaizdas, vykdykite šią komandą:

$ docker paleisti -d -p 8092: 80 - vardas http2 httpd

Kaip matote, nginx1, nginx2, http1, ir http2 „Docker“ konteineriai veikia mano nuotoliniame „Docker“ pagrindiniame kompiuteryje.

Norėdami sustabdyti visus „Docker“ konteinerius, rodančius konkretų „Docker“ vaizdą (tarkime, Nginx), sukurkite naują „Docker“ pjesę stop_all_image_containers.yaml viduje konors grojaraščiai / katalogą taip:

„$ nano“ grojaraščiai / „stop_all_image_containers“.yaml

Dabar įveskite šias eilutes stop_all_image_containers.yaml failą.

- vedėjai: dokininkas
vartotojas: ansible
užduotys:
- pavadinimas: Gaukite visų veikiančių konteinerių sąrašą
docker_host_info:
konteineriai: tiesa
registruotis: docker_info
- pavadinimas: sustabdykite visus sudėtinius rodinius, kuriuose veikia „nginx“ vaizdas
docker_container:
pavadinimas: 'elementas.Vardai [0] | regex_replace ("^ /", "") '
būsena: sustabdyta
kai: elementas.Vaizdas == 'nginx'
kilpa: 'docker_info.konteineriai '

Baigę paspauskite + X paskui Y ir išsaugoti stop_all_image_containers.yaml failą.

Čia aš pridėjau 2 užduotis.

Pirmoji užduotis naudoja „Ansible“ docker_host_info modulį, kad gautumėte visų veikiančių „Docker“ konteinerių sąrašą ir išsaugotumėte juos docker_info kintamasis.

Antroji užduotis vyksta per docker_info.konteineriai masyvas randa veikiančių „Docker“ konteinerių pavadinimus ir paleidžia docker_container modulis kiekvienam veikiančiam konteineriui tik tuo atveju, jei talpyklos atvaizdo pavadinimas yra Nginx. Tada jis sustabdo suderintus „Docker“ konteinerius.

Antroje užduotyje ši eilutė naudojama norint patikrinti, ar „Docker“ talpykloje veikia Nginx vaizdas. Jei norite, galite jį pakeisti kitu „Docker“ atvaizdo pavadinimu.

Dabar paleiskite stop_all_image_containers.yaml pjesė taip:

$ ansible-playbook playbooks / stop_all_image_containers.yaml

Kaip matote, tik Nginx konteineriai (nginx1 ir nginx2) yra modifikuoti (sustabdyti). The httpd konteineriai (http1 ir http2) praleidžiami.

Kaip matote, ne Nginx „Docker“ konteineriai veikia mano nuotoliniame „Docker“ pagrindiniame kompiuteryje. Tik httpd Docker konteineriai (http1 ir http2) bėga.

$ dokeris ps

Galite išvardyti visus „Docker“ sudėtinius rodinius (veikia, pristabdyti, sustabdyti) naudodami šią komandą:

$ docker ps - visi

Kaip matote, sustabdyti „Docker“ konteineriai nginx1 ir nginx2 yra išvardyti.

Išvada:

Šiame straipsnyje aš jums parodžiau, kaip sustabdyti veikiantį „Docker“ konteinerį, visus „Docker“ konteinerius, kuriuose veikia konkretus „Docker“ vaizdas, ir visus jūsų „Docker“ pagrindinio kompiuterio veikiančius „Docker“ konteinerius. Norėdami tai padaryti, aš panaudojau „Ansible“ docker_container ir docker_host_info moduliai šiame straipsnyje.

Norėdami sužinoti daugiau apie šiuos modulius, apsilankykite šiuose „Ansible“ oficialių dokumentų puslapiuose.

[1] docker_container - tvarkykite dokavimo konteinerius
[2] docker_host_info - gauna faktus apie docker pagrindinį kompiuterį ir paslaugų objektų sąrašus

Kaip atsisiųsti ir paleisti „Sid Meier Civilization VI“ sistemoje „Linux“
Įvadas į žaidimą „Civilization 6“ yra šiuolaikinė klasikinės koncepcijos, pristatytos „Age of Empires“ žaidimų serijoje, koncepcija. Idėja buvo gana p...
Kaip įdiegti ir žaisti „Doom“ sistemoje „Linux“
Įvadas į Doom „Doom“ serija atsirado 90-aisiais, išleidus originalų „Doom“. Tai buvo tiesioginis hitas, o nuo to laiko žaidimų serija gavo daugybę apd...
„Vulkan“, skirta „Linux“ vartotojams
Kiekvienos naujos kartos grafikos plokštės matome, kaip žaidimų kūrėjai peržengia grafinės ištikimybės ribas ir artėja prie fotorealizmo. Nepaisant vi...