Руководство по образу 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 принудительно запускает выполнение, потому что в противном случае вы получите сообщение об ошибке, если на изображение ссылается более одного тега.

Запустить образ 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/