Контейнеры
Основные команды
| Команда | Доп. пар. | Описание |
| docker ps | список работающих контейнеров | |
| -a | список остановленных но еще существующих контейнеров | |
| -q | отображать только id контейнеров | |
| -f |
фильтр -aq -f status=exited - список id остановленных контейнеров |
|
| docker logs <name> | список событий внутри контейнера name | |
| docker history | Вывод информацию о каждом уровне в образе. | |
| docker start <name> | запуск остановленного контейнера | |
| docker restart <name> | Перезапускает контейнер. Приблизительный аналог docker stop, docker start. | |
| -t | определяет интервал времени ожидания перед его остановом по сигналу SIGTERM. | |
| docker stop <name> | Останавливает (но не удаляет) контейнер. Контейнер переходит в состояние «остановлен». | |
| -t | Аналогично restart | |
| docker kill <name> | Сигнал основному процессу (PID=1) в контейнере. По умолчанию SIGKILL (немедленное завершение работы). Возвращает идентификатор контейнера. | |
| -s | другой сигнал | |
| docker rm <name или id> | удаление остановленного контейнера | |
| -f | позволяет удалять работающие контейнеры. | |
| -v |
удалить тома, созданные удаляемым контейнером (если эти тома не смонтированы на каталоги и не используются другими контейнерами)
удаляет все остановленные контейнеры |
|
| docker inspect <name или id> | расширенная информация о контейнере | |
| docker top <name или id> | информация о процессах внутри контейнера | |
| docker port <name или id> | номера портов, назначенные механизмом Docker | |
| docker create <name или id> | Создает контейнер из образа, но не запускает его. Аргументы как у docker run. | |
| docker run | создание и запуск контейнера из образа. Удобнее compose файл. | |
| -it или -d | сеанс интерактивной работы или запуск в фоновом режиме | |
| --link <namecur:nameinnew> |
соединение между новым контейнером и существующим контейнером myredis, в новом контейнере ссылка на существующий обозначена именем redis
|
|
| --name | имя для дальнейшего взаимодействия | |
| --hostname | имя для обращения | |
| --mount | монтирование | |
| --volumes-from CONTAINER | использование томов контейнера | |
| -p HostPort:ContPort | перенаправление с портов хоста на порт контейнера | |
| --rm | удаление остановленного контейнера и файловой системы после запуска и выполнения команды. Несовместим с ключом -d. | |
| --restart |
Позволяет настроить образ действий при попытке Docker перезапустить остановленный контейнер.
|
|
| -t, --tty | Создает псевдоустройство TTY (терминал). Как правило, используется вместе с ключом -i для запуска контейнера в интерактивном режиме. | |
| -e, --env | Определяет переменные среды внутри контейнера. | |
| --entrypoint | Определяет точку входа для запускаемого контейнера в соответствии с заданным аргументом, заменяя содержимое любой инструкции ENTRYPOINT из Dockerfile. | |
| -u, --user | Определяет пользователя, от имени которого выполняются команды. Может быть задано как символьное имя пользователя или как числовой идентификатор UID. Заменяет содержимое инструкции USER из Dockerfile. | |
| -w, --workdir | Устанавливает рабочий каталог в контейнере в соответствии с заданным путевым именем. Заменяет любые значения, определенные в файле Dockerfile. | |
| --add-host=docker:10.180.0.1 | ХЗ, узнать | |
| docker pause/unpause | Временно приостанавливает/запускает все процессы внутри контейнера. Процессы не получают никаких сигналов приостановки(не могут быть остановлены и завершены или удалены). | |
| docker commit <container name> <repo name> | образ контейнера. По умолчанию приостанавливаются, без приостановки --pause=false. | |
| docker network ls | список сетей | |
| docker diff <name> | изменения в контейнере относительно базового образа |
Взаимодействие реального времени
Ctrl-PQ (или Ctrl+P, Ctrl+Q) отключение от контейнера без остановки
| Команда | Доп. пар. | Описание |
| docker attach <name или id> | наблюдать или взаимодействовать с основным процессом внутри контейнера. | |
| docker cp |
Позволяет копировать файлы между файловыми системами контейнера и хоста.
|
|
| docker exec | Запускает заданную команду внутри контейнера (может быть работающий сейчас). Может использоваться для выполнения задач сопровождения или в качестве замены ssh при входе (регистрации) в контейнер.
|
|
| docker events | Выводит в реальном времени события от демона демону. Выход Ctrl-C. |
- Запуск контейнера образа ubuntu:latest в интерактивном режиме с bash
docker run -it ubuntu:latest /bin/bash - Подключение к работающему контейнеру и запуск в нем bash
docker exec -it e37f24dc7e0a bash
| Команда | Доп. пар. | Описание |
| docker export <name> |
Экспорт файловую систему в tar-архив, через STDOUT.
Экспорт только ФС, метаданные (порты, команды CMD, параметры настройки ENTRYPOINT) будут потеряны.
Не включаются тома.
|
|
| --output tarname.tar |
Имя архива
|
|
| docker import <tar name> <image name> |
Т.к. нет метаданных (в частности, CMD) - обязательно указать команду.
|
-
Перенос «слепка» контейнера между хостами
Допустим, на тестовом сервере контейнер собрал нужные конфиги/пакеты, ты сделал docker export, скопировал tar на прод и хочешь быстро получить образ:scp user@test-host:/tmp/app-fs.tar /tmp/ docker import /tmp/app-fs.tar app-base:snapshotДальше можно использовать этот образ как основу для других контейнеров или как временный шаблон.
-
Создание базового образа из «живого» контейнера
Сценарий: запустил контейнер, поставил зависимости, настроил конфиги, экспортировал, импортировал — получил свой базовый образ.docker export configured-container > base-with-deps.tar docker import base-with-deps.tar base-image:with-deps -
Анализ файловой системы (без запуска полноценного контейнера)
Можно импортировать архив и запустить «голый» образ, чтобы посмотреть структуру:docker import datalens-fs-snapshot.tar datalens-debug:fs docker run --rm datalens-debug:fs ls -R /var/lib/datalens
| Команда | Что экспортирует | Сохраняет ли слои как слои | Сохраняет ли CMD/ENV | Сохраняет ли данные из volumes | Для чего лучше |
| docker export | Файловую систему контейнера (flat tar) | Нет (только итоговые файлы) | Нет | Нет | Слепки ФС, перенос конфигов, аудит |
| docker save | Образ со всеми слоями + метаданные | Да (структура слоёв сохраняется) | Да | Нет (volumes не входят в образ) | Перенос образов между хостами/реестрами |
| docker commit | Новый образ из контейнера | Да (создаётся новый слой) | Нет | Нет | Быстрые «снимок-образы» (не для CI) |
No comments to display
No comments to display