Vodič za slike Dockera: Kako izbrisati slike Dockera, zaustaviti spremnike i ukloniti sve sveske

Docker je široko prihvaćen i izvrsno je sredstvo za postavljanje aplikacije u oblak (ili neku drugu infrastrukturu spremnu za Docker). Također je korisno za lokalni razvoj. Možete brzo pokretati složene aplikacije, razvijati se izolirano, a opet imaju vrlo dobre performanse.

Ovdje su najvažnije naredbe za učinkovitu upotrebu Dockera u svakodnevnom poslovanju.

Popis svih Dockerovih slika

docker images 

U mom slučaju imam instalirane 3 slike:

  • MySQL, verzija 8.0.19, jedna označena kao najnovija verzija
  • i Cassandra s najnovijom verzijom.

Da biste dobili više informacija o slici, možete je pregledati:

docker inspect mysql:latest

Ovo će vratiti popis podataka. Za dobivanje podataka možete koristiti i ID slike:

docker inspect 3a5e53f63281

Izlaz može biti neodoljiv. Stoga postoji zgodna opcija za filtriranje određenih podataka:

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

Uklonite Dockerove slike

Jednu sliku može ukloniti:

docker rm mysql:latest

U mom slučaju slika je i dalje označena s mysql: 8.0.19 . Stoga, da bih ga potpuno uklonio, trebam ukloniti i drugu oznaku verzije:

docker rm mysql:8.0.19

Da biste sliku izravno uklonili, sliku je lakše izbrisati prema ID-u slike:

docker image rm 3a5e53f63281 -f

Opcija -f forsira izvršenje, jer bi u suprotnom dobili pogrešku ako na sliku upućuje više od 1 oznake.

Pokrenite Docker sliku

Sliku u prvi plan može pokrenuti:

docker run cassandra

Ako slika ne postoji, tada će se preuzeti. Možete zaustaviti izvršenje pritiskom na CTRL + C . Možete ga pokrenuti i u pozadini dodavanjem opcije -d :

docker run -d mysql

Ako je spremnik pokrenut u pozadini, tada ćete dobiti ID spremnika.

Prema zadanim postavkama spremnik radi izolirano. Stoga s njom nećete moći komunicirati i datoteke se neće pohraniti u vaš trenutni direktorij.

Prednje luke kontejnera

Portove možete proslijediti pomoću opcije -p , na primjer, na stranicu koja je izložena iz vašeg spremnika:

docker run -p 8080:80 nginx

Ovaj NGINX spremnik izlaže web poslužitelj na priključku 80. Korištenjem -p 8080: 80, lokalni priključak 8080 prosljeđuje se na ulaz spremnika 80.

Prijavite se u spremnik

Ponekad je korisno prijaviti se u spremnik. To je moguće samo ako je na spremniku instalirana ljuska. Dobit ćete pogrešku ako to nije slučaj.

Prvo pokrenite spremnik odvojen i dajte mu ime:

docker run -d --name my_container nginx

To će vratiti ID spremnika. Sada možete izvršiti ljusku u spremniku i priložiti joj ulaz i izlaz pomoću opcija -i i -t :

docker exec -it my_container bash

Umjesto imena spremnika, vraćeni ID spremnika možete koristiti i za sve sljedeće radnje. Bash ponekad nije dostupan. Stoga, također možete pokušati pokrenuti osnovnu ljusku:

docker exec -it my_container sh

Popis spremnika koji se izvode

Nakon pokretanja spremnika možete vidjeti kako se izvršavaju svi pokrenuti spremnici:

docker ps

Dodavanjem -a , bit će navedeni i izašli spremnici:

docker ps -a

Dijelite lokalnu mapu sa spremnikom

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.

I am a co-founder of our revolutionary journey platform called Explore The World. We are a young startup located in Dresden, Germany and will target the German market first. Reach out to me if you have feedback and questions about any topic.

Happy Docker exploring :)

References

  • Docker command line documentation

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