„Docker“ vaizdų vadovas: Kaip ištrinti „Docker“ vaizdus, ​​sustabdyti konteinerius ir pašalinti visus tomus

„Docker“ buvo plačiai pritaikytas ir yra puiki priemonė diegti programą debesyje (ar kitoje „Docker“ parengtoje infrastruktūroje). Tai taip pat naudinga vietos plėtrai. Galite greitai paleisti sudėtingas programas, kurti atskirai ir vis tiek turėti labai gerą našumą.

Čia pateikiamos svarbiausios komandos, kaip efektyviai naudoti „Docker“ kasdieniniame versle.

Išvardinkite visus „Docker“ vaizdus

docker images 

Mano atveju turiu įdiegtus 3 vaizdus:

  • „MySQL“, 8.0.19 versija, viena pažymėta kaip naujausia versija
  • ir „Cassandra“ su naujausia versija.

Norėdami gauti daugiau informacijos apie vaizdą, galite jį apžiūrėti:

docker inspect mysql:latest

Tai pateiks informacijos sąrašą. Arba taip pat galite naudoti vaizdo ID, kad gautumėte informaciją:

docker inspect 3a5e53f63281

Rezultatas gali būti didžiulis. Todėl yra patogi galimybė filtruoti tam tikrą informaciją:

docker inspect --format='{{.RepoTags}} {{.Config.Image}}' 3a5e53f63281

Pašalinkite „Docker Images“

Vieną vaizdą galima pašalinti:

docker rm mysql:latest

Mano atveju vaizdas vis dar pažymėtas „ mysql“: 8.0.19 . Todėl, norėdamas jį visiškai pašalinti, turiu pašalinti ir kitą versijos žymą:

docker rm mysql:8.0.19

Jei norite tiesiogiai pašalinti vaizdą, lengviau ištrinti vaizdą pagal atvaizdo ID:

docker image rm 3a5e53f63281 -f

Opciono -F pajėgos vykdymo, nes kitaip jūs gaunate klaidos, jei vaizdas yra nuoroda iš daugiau nei 1 tag.

Paleiskite „Docker Image“

Vaizdą priekiniame plane galite pradėti:

docker run cassandra

Jei paveikslėlio nėra, jis bus atsisiųstas. Galite sustabdyti vykdymą paspausdami CTRL + C . Taip pat galite paleisti jį fone, pridėdami parinktį -d :

docker run -d mysql

Jei sudėtinis rodinys paleidžiamas fone, gausite konteinerio ID.

Pagal numatytuosius nustatymus sudėtinis rodinys veikia atskirai. Todėl negalėsite su juo bendrauti ir dabartiniame kataloge nėra failų.

Persiųsti konteinerio prievadus

Galite persiųsti uostus naudodami -p parinktį, pavyzdžiui, puslapiui, kuris rodomas iš jūsų konteinerio:

docker run -p 8080:80 nginx

Šis NGINX konteineris pateikia 80 serverio tinklo serverį. Naudojant -p 8080: 80, vietinis 8080 prievadas persiunčiamas į konteinerio 80 prievadą.

Prisijunkite prie konteinerio

Kartais naudinga prisijungti prie konteinerio. Tai įmanoma tik tuo atveju, jei talpykloje yra įdiegtas apvalkalas. Jei taip nėra, gausite klaidą.

Pirmiausia pradėkite konteinerį atskirti ir pavadinkite:

docker run -d --name my_container nginx

Tai grąžins sudėtinio rodinio ID. Dabar talpykloje galite įvykdyti apvalkalą ir pridėti įvestį ir išvestį naudodami parinktis -i ir -t :

docker exec -it my_container bash

Vietoj sudėtinio rodinio pavadinimo taip pat galite naudoti grąžinamo konteinerio ID visoms šioms operacijoms atlikti. Kartais „bash“ nėra. Todėl taip pat galite pabandyti paleisti pagrindinį apvalkalą:

docker exec -it my_container sh

Išvardykite veikiančius konteinerius

Paleidę sudėtinį rodinį galite pamatyti, kaip visi vykdomi sudėtiniai rodiniai vykdomi:

docker ps

Pridedant -a , išimti konteineriai taip pat bus įtraukti į sąrašą:

docker ps -a

Bendrinkite vietinį aplanką su sudėtiniu rodiniu

Sometimes it is useful to sync files between the container and the local filesystem. You can do it by running a container and using the -v option. On Linux and macOS, you can share a local temporary folder with a container by:

docker run --name=my_container -d -v $(pwd)/tmp:/var/log/nginx -p 8080:80 nginx

On windows you can run:

docker run --name=my_container -d -v %cd%/tmp:/var/log/nginx -p 8080:80 nginx

Stop running containers

It is possible to stop a running container by:

docker stop my_container

Stopping a container stops all processes but keeps changes within the filesystem.

Start a stopped container

A stopped container can be started by:

docker start my_container

Remove a container

To remove a stopped container, you can execute:

docker rm my_container

To stop and remove the container in one command, you can add the force option -f.

docker rm -f my_container

Create a volume and share it with multiple containers

An independent volume named SharedData can be created by:

docker volume create --name SharedData docker run --name=my_container -d -v SharedData:/var/log/nginx -p 8080:80 nginx docker run --name=my_container_2 -d -v SharedData:/var/log/nginx -p 8080:80 nginx

Both containers will have a shared folder, and files will be synced between both containers.

Remove a volume

To remove a volume, all containers that use the volume need to be removed.

docker rm -f my_container docker rm -f my_container_2 docker volume rm SharedData

Remove stopped containers and unused images

A safe tidy-up command is:

docker system prune -a

Remove all unused volumes

All unmounted volumes can be removed by:

docker volume prune

Conclusion

Creating containers, logging into containers, forwarding ports, and sharing volumes are the most important commands of your Docker command line interface. They build the foundation of systems like Kubernetes and enable us to create and run applications in isolation.

I hope you enjoyed the article. If you like it and feel the need for a round of applause, follow me on Twitter.

Esu mūsų revoliucinės kelionės platformos „Explore The World“ vienas iš įkūrėjų. Esame jaunas startuolis, įsikūręs Dresdene, Vokietijoje ir pirmiausia orientuojamasi į Vokietijos rinką. Kreipkitės į mane, jei turite atsiliepimų ir klausimų apie kurią nors temą.

Laimingas dokeris tyrinėja :)

Nuorodos

  • „Docker“ komandinės eilutės dokumentacija

    //docs.docker.com/engine/reference/commandline/docker/