# Контейнеры **Основные команды**
Команда | Доп. пар. | Описание |
**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** | список сетей |
Команда | Доп. пар. | Описание |
**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. |