Ръководство за изображения на Docker: Как да изтриете изображения на Docker, да спрете контейнерите и да премахнете всички томове

Docker е широко приет и е чудесно средство за внедряване на приложение в облака (или друга инфраструктура, готова за Docker). Полезен е и за местното развитие. Можете бързо да стартирате сложни приложения, да се развивате изолирано и въпреки това да имате много добра производителност.

Ето най-важните команди за ефективно използване на Docker във вашия ежедневен бизнес.

Списък на всички изображения на Docker

docker images 

В моя случай имам инсталирани 3 изображения:

  • MySQL, версия 8.0.19, една с етикет като най-новата версия
  • и Касандра с най-новата версия.

За да получите повече информация за изображение, можете да го проверите:

docker inspect mysql:latest

Това ще върне списък с информация. Освен това можете да използвате идентификатора на изображението, за да получите информацията:

docker inspect 3a5e53f63281

Резултатът може да бъде поразителен. Следователно има удобна опция за филтриране на определена информация:

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

Премахнете изображенията на Docker

Едно изображение може да бъде премахнато от:

docker rm mysql:latest

В моя случай изображението все още е маркирано с mysql: 8.0.19 . Следователно, за да го премахна напълно, трябва да премахна и друг маркер на версията:

docker rm mysql:8.0.19

За да премахнете изображението директно, е по-лесно да го изтриете по идентификатор на изображението:

docker image rm 3a5e53f63281 -f

Опцията -f принуждава изпълнението, защото в противен случай ще получите грешка, ако изображението е препратено с повече от 1 таг.

Стартирайте изображение на Docker

Изображение може да се стартира на преден план чрез:

docker run cassandra

Ако изображението не съществува, то ще бъде изтеглено. Можете да спре изпълнението, като натиснете CTRL + C . Можете също да го стартирате във фонов режим, като добавите опцията -d :

docker run -d mysql

Ако контейнерът е стартиран във фонов режим, тогава получавате идентификатора на контейнера.

По подразбиране контейнерът работи изолирано. Следователно няма да можете да комуникирате с него и няма файлове, които да се съхраняват в текущата ви директория.

Препращащи портове на контейнер

Можете да препращате портове, като използвате опцията -p например на страница, която е изложена от вашия контейнер:

docker run -p 8080:80 nginx

Този контейнер NGINX излага уеб сървър на порт 80. Като използва -p 8080: 80, локалният порт 8080 се препраща към порт 80 на контейнера.

Влезте в контейнер

Понякога е полезно да влезете в контейнер. Това е възможно само ако контейнерът има инсталирана обвивка. Ще получите грешка, ако случаят не е такъв.

Първо стартирайте отделения контейнер и му дайте име:

docker run -d --name my_container nginx

Това ще върне идентификатор на контейнер. Сега можете да изпълните обвивка в контейнера и да прикачите входа и изхода към нея, като използвате опциите -i и -t :

docker exec -it my_container bash

Вместо името на контейнера, можете също да използвате върнатия идентификатор на контейнера за всички следващи операции. Понякога bash не е наличен. Следователно можете също да опитате да стартирате основна обвивка:

docker exec -it my_container sh

Списък на работещите контейнери

След като стартирате контейнер, можете да видите всички изпълняващи се контейнери да се изпълняват:

docker ps

Като добавите -a , излезлите контейнери също ще бъдат изброени:

docker ps -a

Споделете локална папка с контейнер

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/