Skip to main content

Контейнеры

Основные команды

Команда Доп. пар. Описание
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

удалить тома, созданные удаляемым контейнером (если эти тома не смонтированы на каталоги и не используются другими контейнерами)

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

--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 контейнер опять запустится. Может быть задан аргумент, определяющий максимальное количество попыток перезапуска (иначе попытки будут выполняться бесконечно). 
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

Позволяет  копировать  файлы  между  файловыми  системами  контейнера и хоста.

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 
    docker run -it ubuntu:latest /bin/bash 
  • Подключение к работающему контейнеру и запуск в нем bash 
    docker exec -it e37f24dc7e0a bash