# Контейнеры **Основные команды**
КомандаДоп. пар.Описание
**docker ps** список работающих контейнеров
-aсписок остановленных но еще существующих контейнеров
**docker logs <name>** список событий внутри контейнера name
**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удалить тома, созданные удаляемым контейнером (если эти тома не смонтированы на каталоги и не используются другими контейнерами) ```bash docker rm -v $(docker ps -aq -f status=exited) ``` удаляет все остановленные контейнеры
**docker top <name или id>** информация о процессах внутри контейнера
**docker port <name или id>** номера портов, назначенные механизмом Docker
**docker create <name или id>** Создает контейнер из образа, но не запускает его. Аргументы как у docker run.
**docker run** создание и запуск контейнера из образа
-it или -dсеанс интерактивной работы или запуск в фоновом режиме
--link <namecur:nameinnew>соединение между новым контейнером и существующим контейнером myredis, в новом контейнере ссылка на существующий обозначена именем redis ```bash --link myredis:redis ```
--nameимя для дальнейшего взаимодействия
--hostnameимя для обращения
--mountмонтирование
--volumes-from CONTAINERиспользование томов контейнера
-p HostPort:ContPortперенаправление с портов хоста на порт контейнера
--rmудаление остановленного контейнера и файловой системы после запуска и выполнения команды. Несовместим с ключом -d.
--restart
Позволяет настроить образ действий при попытке Docker перезапустить остановленный контейнер.
- no запрещает любые попытки перезапуска контейнера. - unless-stopped Будет перезагружаться до остановки. После перезагрузки демона Docker контейнер останется выключенным. - always попытки перезапуска выполняются в любом случае вне зависимости от состояния контейнера после выхода. После перезагрузки демона Docker контейнер опять запустится. - on-failure: перезапуск выполняются для контейнера, завершившего работу с ненулевым статусом. После перезагрузки демона Docker контейнер опять запустится. Может быть задан аргумент, определяющий максимальное количество попыток перезапуска (иначе попытки будут выполняться бесконечно).
```bash docker run --restart on-failure:10 postgres ```
-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** список сетей
**Взаимодействие реального времени** Ctrl-PQ (или Ctrl+P, Ctrl+Q) отключение от контейнера без остановки
КомандаДоп. пар.Описание
**docker attach <name или id>** наблюдать или взаимодействовать с основным процессом внутри контейнера.
**docker cp** Позволяет копировать файлы между файловыми системами контейнера и хоста. ```bash docker cp /tmp/config.ini grafana:/usr/share/grafana/conf/ ```
**docker exec** Запускает заданную команду внутри контейнера (может быть работающий сейчас). Может использоваться для выполнения задач сопровождения или в качестве замены ssh при входе (регистрации) в контейнер. ``` docker exec -it ubuntu:latest bash ```
**docker events** Выводит в реальном времени события от демона демону. Выхода Ctrl-C.
**Примеры**
- Запуск контейнера образа ubuntu:latest в интерактивном режиме с bash ```bash docker run -it ubuntu:latest /bin/bash  ``` - Подключение к работающему контейнеру и запуск в нем bash ```bash docker exec -it e37f24dc7e0a bash ```