Docker Reminder
Шпаргалка по 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