Посібник із зображення 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/