Docker Reminder: различия между версиями
W00zy (обсуждение | вклад) |
W00zy (обсуждение | вклад) |
||
(не показано 6 промежуточных версий этого же участника) | |||
Строка 19: | Строка 19: | ||
==== Удаление одного или нескольких конкретных образов: ==== | ==== Удаление одного или нескольких конкретных образов: ==== | ||
Команда docker images с флагом -a, покажет идентификаторы образов, список включает промежуточные слои образов. Вы можете передать идентификаторы или теги в docker rmi: | Команда docker images с флагом -a, покажет идентификаторы образов, список включает промежуточные слои образов. Вы можете передать идентификаторы или теги в docker rmi:<br> | ||
Список: | Список образов: | ||
<pre>$ docker images -a</pre> | <pre>$ docker images -a</pre> | ||
Удаление: | Удаление выбранных: | ||
<pre>$ docker rmi Image Image</pre> | <pre>$ docker rmi Image Image</pre> | ||
==== Удаление всех образов ==== | ==== Удаление всех образов ==== | ||
Если вы уверены, что хотите удалить их все, добавьте флаг -q для передачи идентификатора образа в docker rmi: | Если вы уверены, что хотите удалить их все, добавьте флаг -q для передачи идентификатора образа в docker rmi: | ||
Строка 34: | Строка 35: | ||
==== Удаление одного или нескольких конкретных контейнеров ==== | ==== Удаление одного или нескольких конкретных контейнеров ==== | ||
Команда ''docker ps'' с флагом ''-a'' предназначена для поиска имен или идентификаторов контейнеров. | Команда ''docker ps'' с флагом ''-a'' предназначена для поиска имен или идентификаторов контейнеров.<br> | ||
Список: | Список образов: | ||
<source lang="sh">$ docker ps -a</source> | <source lang="sh">$ docker ps -a</source> | ||
<pre>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | |||
f88d9306220b alt-p10-build "/bin/bash" 9 hours ago Up 9 hours alt-p10-build</pre> | |||
Удаление: | Удаление выбранных: | ||
<source lang="sh">$ docker rm ID_or_Name ID_or_Name</source> | <source lang="sh">$ docker rm ID_or_Name ID_or_Name</source> | ||
Строка 94: | Строка 97: | ||
</source> | </source> | ||
Если контейнер точно один, то можно делать так: | Если контейнер точно один, то можно делать так: | ||
<source lang="">$ docker attach (docker ps -a | <source lang="">$ docker attach (docker ps -a -f status=running -q)</source> | ||
==== Запуск неактивного контейнера ==== | ==== Запуск неактивного контейнера ==== | ||
<source lang="sh">docker ps -a ИЛИ (docker ps -a | <source lang="sh">docker ps -a ИЛИ (docker ps -a -f status=exited -q) | ||
docker start 132185b8a166 | docker start 132185b8a166 | ||
docker ps -a | docker ps -a | ||
</source> | </source> | ||
==== Отсоединение контейнера без его остановки ==== | |||
Нажмите Ctrl-P, а затем Ctrl-Q, чтобы отключить соединение. | Нажмите Ctrl-P, а затем Ctrl-Q, чтобы отключить соединение. | ||
Строка 122: | Строка 125: | ||
Взглянем на команды ''docker export'' и ''docker save''. | Взглянем на команды ''docker export'' и ''docker save''. | ||
* ''docker export'' сохраняет запущенный или поставленный на паузу '''экземпляр контейнера''' в tar файл. | * ''docker export'' сохраняет запущенный или поставленный на паузу '''экземпляр контейнера''' в tar файл. | ||
<pre>$ docker ps | |||
< | |||
$ docker ps | |||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | ||
f88d9306220b alt-latest "/bin/bash" 8 hours ago Up 7 hours alt-p10-build | f88d9306220b alt-latest "/bin/bash" 8 hours ago Up 7 hours alt-p10-build | ||
$ docker export f88d9306220b -o alt-p10-export.tar | $ docker export f88d9306220b -o alt-p10-export.tar | ||
</ | </pre> | ||
<br> | |||
* ''docker save'' сохраняет '''образ''' в tar файл. | |||
< | <pre>$ docker images | ||
$ docker images | |||
REPOSITORY TAG IMAGE ID CREATED SIZE | REPOSITORY TAG IMAGE ID CREATED SIZE | ||
alt-p10-build latest 6ce8472ef310 25 hours ago 1.34GB | alt-p10-build latest 6ce8472ef310 25 hours ago 1.34GB | ||
$ docker save -o alt-p10-build-save.tar alt-p10-build | $ docker save -o alt-p10-build-save.tar alt-p10-build | ||
</ | </pre> | ||
<br> | |||
==== Загрузка сохраненного образа ==== | ==== Загрузка сохраненного образа ==== | ||
Строка 148: | Строка 149: | ||
* ''docker import'' используется для импорта tar файла (т.е. контейнера), созданного через ''docker export''. | * ''docker import'' используется для импорта tar файла (т.е. контейнера), созданного через ''docker export''. | ||
<pre>$ docker import alt-p10-export.tar | |||
sha256:56п54e1b4a26cd15a6c6d33da835e7319491a9c1dbeca16583750f7b96235403</pre> | |||
* ''docker load'' для загрузки tar файла (т.е. образа), созданного через ''docker save''. | * ''docker load'' для загрузки tar файла (т.е. образа), созданного через ''docker save''. | ||
<pre>$ docker load --input alt-p10-build-save.tar | |||
Loaded image: busybox:latest</pre> | |||
<br> | |||
<br> | |||
<br> | |||
[[Category:Виртуализация]] | [[Category:Виртуализация]] | ||
{{Category navigation|title=Виртуализация|category=Виртуализация|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=Виртуализация|category=Виртуализация|sortkey={{SUBPAGENAME}}}} |
Текущая версия от 19:38, 27 июня 2024
Шпаргалка по 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
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f88d9306220b alt-p10-build "/bin/bash" 9 hours ago Up 9 hours alt-p10-build
Удаление выбранных:
$ 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 -f status=running -q)
Запуск неактивного контейнера
docker ps -a ИЛИ (docker ps -a -f status=exited -q)
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 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
- docker save сохраняет образ в tar файл.
$ 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 import alt-p10-export.tar sha256:56п54e1b4a26cd15a6c6d33da835e7319491a9c1dbeca16583750f7b96235403
- docker load для загрузки tar файла (т.е. образа), созданного через docker save.
$ docker load --input alt-p10-build-save.tar Loaded image: busybox:latest