Docker Reminder: различия между версиями
W00zy (обсуждение | вклад) (Новая страница: «== Шпаргалка по Docker == Основная статья по Docker Здесь === Интро === Все нижеизложенное надергано из различных источников. Указать авторство не всегда представляется возможным. {{attention|Все что Вы делаете, Вы делаете на свой страх и риск! Не копируйте, вник...») |
W00zy (обсуждение | вклад) мНет описания правки |
||
Строка 11: | Строка 11: | ||
В Docker имеется команда, очищающая все не связанные с контейнерами ресурсы, в том числе образы, контейнеры, тома и сети: | В Docker имеется команда, очищающая все не связанные с контейнерами ресурсы, в том числе образы, контейнеры, тома и сети: | ||
< | <pre>$ docker system prune</pre> | ||
Чтобы удалить все остановленные контейнеры и неиспользуемые образы, добавьте в эту команду флаг -a: | Чтобы удалить все остановленные контейнеры и неиспользуемые образы, добавьте в эту команду флаг -a: | ||
< | <pre>$ docker system prune -a</pre> | ||
==== Удаление одного или нескольких конкретных образов: ==== | ==== Удаление одного или нескольких конкретных образов: ==== | ||
Строка 21: | Строка 21: | ||
Команда docker images с флагом -a, покажет идентификаторы образов, список включает промежуточные слои образов. Вы можете передать идентификаторы или теги в docker rmi: | Команда docker images с флагом -a, покажет идентификаторы образов, список включает промежуточные слои образов. Вы можете передать идентификаторы или теги в docker rmi: | ||
Список: | Список: | ||
< | <pre>$ docker images -a</pre> | ||
Удаление: | Удаление: | ||
< | <pre>$ docker rmi Image Image</pre> | ||
==== Удаление всех образов ==== | ==== Удаление всех образов ==== | ||
Если вы уверены, что хотите удалить их все, добавьте флаг -q для передачи идентификатора образа в docker rmi: | Если вы уверены, что хотите удалить их все, добавьте флаг -q для передачи идентификатора образа в docker rmi: | ||
< | <pre>docker rmi $(docker images -a -q)</pre> | ||
{{attention|Будьте аккуратны! Можете легко и безвозвратно удалить нужное. Потренируйтесь на кошках.}} | {{attention|Будьте аккуратны! Можете легко и безвозвратно удалить нужное. Потренируйтесь на кошках.}} |
Версия от 18:49, 23 февраля 2023
Шпаргалка по Docker
Основная статья по Docker Здесь
Интро
Все нижеизложенное надергано из различных источников. Указать авторство не всегда представляется возможным.
Docker Образы
В Docker имеется команда, очищающая все не связанные с контейнерами ресурсы, в том числе образы, контейнеры, тома и сети:
$ docker system prune
Чтобы удалить все остановленные контейнеры и неиспользуемые образы, добавьте в эту команду флаг -a:
$ docker system prune -a
Удаление одного или нескольких конкретных образов:
Команда docker images с флагом -a, покажет идентификаторы образов, список включает промежуточные слои образов. Вы можете передать идентификаторы или теги в docker rmi: Список:
$ docker images -a
Удаление:
$ docker rmi Image Image
Удаление всех образов
Если вы уверены, что хотите удалить их все, добавьте флаг -q для передачи идентификатора образа в docker rmi:
docker rmi $(docker images -a -q)
Контейнеры
Удаление одного или нескольких конкретных контейнеров
Команда docker ps с флагом -a предназначена для поиска имен или идентификаторов контейнеров. Список:
$ docker ps -a
Удаление:
$ docker rm ID_or_Name ID_or_Name
Удаление контейнера при выходе
Если вы создаете контейнер, который вам не будет нужен после завершения его использования, вы можете использовать команду docker run --rm для его автоматического удаления при выходе. Запуск и удаление:
$ docker run --rm image_name
Удаление всех контейнеров, из которых выполнен выход
Найти контейнеры можно с помощью команды docker ps -a и отфильтровать их по статусу:
- created (создан)
- restarting (перезапускается)
- running (работает)
- paused (пауза)
- exited (выполнен выход).
Чтобы просмотреть список контейнеров, из которых выполнен выход, используйте флаг -f для фильтрации по статусу. Список остановленных контейнеров:
$ docker ps -a -f status=exited
Удаление:
$ docker rm $(docker ps -a -f status=exited -q)
Создание (запуск) контейнера
Просмотр установленных образов (image)
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
alt-latest latest 6ce8472ef310 24 hours ago 1.34GB
Запуск контейнера в интерактивном режиме.
Это значит, что вы сможете выполнять команды bash внутри контейнера с оболочкой. Для старта интерактивного режима используются опции -i и -t. Опция -d позволяет запустить контейнер в фоновом режиме, и вывести идентификатор контейнера. Для собственного удобства, привыкайте давать имена контейнерам, параметр --name.
$ docker run -dit -P --name alt-p10-build alt-latest
Присоединение к активному контейнеру
Выводим список контейнеров, присоединяемся к нужному
$ docker ps -a -f status=running
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f88d9306220b alt-latest "/bin/bash" 8 hours ago Up 7 hours alt-p10-build
$ docker attach f88d9306220b
Если контейнер точно один, то можно делать так:
$ docker attach (docker ps -a -q -f status=running)
Запуск неактивного контейнера
docker ps -a ИЛИ (docker ps -a -q -f status=exited)
docker start 132185b8a166
docker ps -a
==== Отсоединение контейнера без его остановки ====
Нажмите Ctrl-P, а затем Ctrl-Q, чтобы отключить соединение.
Запуск контейнера с общим каталогом
Если нужно "расшарить" каталог для обмена с контейнером. В примере общим будет $HOME/Public (при условии что в контейнере имя пользователя rpmbuild)
$ docker run -dit -P --name alt-p10-build -v ~/Public:/home/rpmbuild/Public alt-latest
При желании, можно смонтировать tmpfs в нужный каталог. В примере создаем в контейнере tmpfs в каталог /opt
$ docker run -dit -P --name alt-p10-build --mount type=tmpfs,destination=/opt alt-latest
Сохранение контейнера в образ
Взглянем на команды docker export и docker save.
- docker export сохраняет запущенный или поставленный на паузу экземпляр контейнера в tar файл.
- docker save сохраняет образ в tar файл.
Пример Export:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f88d9306220b alt-latest "/bin/bash" 8 hours ago Up 7 hours alt-p10-build
$ docker export f88d9306220b -o alt-p10-export.tar
Пример Save:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
alt-p10-build latest 6ce8472ef310 25 hours ago 1.34GB
$ docker save -o alt-p10-build-save.tar alt-p10-build
Загрузка сохраненного образа
К сохраненным в tar образам применяются команды docker import и docker load.
- docker import используется для импорта tar файла (т.е. контейнера), созданного через docker export.
- docker load для загрузки tar файла (т.е. образа), созданного через docker save.
SAVE:
$ docker import alt-p10-export.tar
sha256:94f13e1b4a26cd15a6c6d33da835e7319491a9c1dbeca16583750f7b96235403
LOAD:
$ docker load --input alt-p10-build-save.tar
Loaded image: busybox:latest