Для работы с Docker образами и контейнерами предусмотрен консольный клиент docker.
В примерах комманд ниже, будут встречаться подобные скобки [], это означает, что инструкции внутри них имеют опциональный характер и для базового выполнения команды необязательны.
добавляя ключ —help получаем встроенную справку по командам, ключам, параметрам и т.д.
docker --help, docker image ls --help
информация об установленной версии Docker.
docker -v
остановка конкретного контейнера.
docker stop ID_CONTAINER
остановка всех запущенных контейнеров.
docker stop $(docker ps -q)
удаление всех локальных образов.
docker image prune
удаление всех неактивных контейнеров.
docker container prune
Remove “orphan” volumes
docker volume prune
статистика используемых ресурсов запущенных контейнеров.
docker stats $(docker ps --format {{.Names}})
список всех образов, имеющихся в системе
docker images
Удаление конкретного образа
docker rmi ID_IMAGE
список запущенных (работающих контейнеров)
docker ps
списоке всех контейнеров
docker ps -a
удаление контейнера
docker rm -f ID_CONTAINER
docker container ls -список запущенных (работающих контейнеров).
У команды docker container ls имеются полезные ключи:
- -a -список всех контейнеров в том числе выключенных.
- -l -список последних контейнеров, включая выключенные.
- -n -список последних -n контейнеров, включая выключенные.
- -q -список только идентификаторов контейнеров, отлично подходит для используя на скриптах.
docker search redis -поиск всех образов Docker в реестре (по умолчанию это Docker Hub), которые содержат слово «redis».
docker image pull python -загрузка образа (в даном примере python) из реестра.
docker pull python -загрузка образа (в даном примере python) из реестра.
docker image inspect python -вывод детальной информации об имеющемся в системе образе (в данном случае образ python ).
docker container run [OPTIONS] IMAGE [COMMAND] [ARG…] -общая команда запуска контейнера и выполнения какой либо команды внутри docker-контейнера.
Команда docker container run имеет много опций, часто используются:
- -d запуск контейнера в фоне (отвязывает от текущего терминала).
- -i интерактивный режим. Сохраняет STDIN открытым даже без консоли.
- -t псевдо TTY.
- —rm автоматически удаляет контейнер после окончания (не работает с ключом -d)
- -p проброс портов.
- -v проброс общих volumes.
- —name задать имя контейнеру
docker container run -it —rm —name my_python python bash -пример команды выше. На основе образа python будет создан контейнер с именем my_python и в нем запущена команда bash.
docker run -it nginx bash — будет запущен контейнер на основе образа nginx это произойдет в интерактивном режиме, а внутри контейнера будет запущен bash и будет предоставлен терминал для работы внутри контейнера.
docker run nginx cat /etc/nginx/nginx.conf — пример передачи команды для выполнения внутри контейнера. В текущем случае в консоль будет распечатана базовая конфигурация nginx, имеющаяся в образе nginx.
docker run nginx — будет выполняться команда прописанная по умолчанию внутри образа. Для текущего примера с образом nginx — это запуск веб сервера.
docker run -p 8080:80 nginx — запуск команды по умолчанию внутри контейнера и проброс портов на локальную машину. (здесь напримере образа nginx, внутри запустится сервер на 80 порту, и он станет доступен для взаимодействия на локальной машине на порту 8080. Для проверки в браузере localhost:8080).
docker run -p 80:80 -p 443:443 -d nginx — запуск контейнера на основе образа nginx в фоне и проброс 2-ух портов наружу. Для проверки в браузере localhost:80.
docker container run -it —rm -p «port_host:port_container» python -проброс портов в контейнер. Например -p 8080:80 внутри контейнера изолированный порт 80 будет, а на локальной будет доступен 8080.
docker container run -it —rm -m 512M python — ограничение работы контейнера по оперативной памяти, например -m 512M.
docker container stop my_python -остановка запущенного контейнера с именем my_python.
docker container start my_python -запуск контейнера с именем my_python.
docker exec -it id_container bash — переход в интерактивную командную строку внутрь контейнера.
Общие тома.
docker run -v /var/www/html:/app nginx — проброс содержимого каталога html внутрь контейнера (будут общие файлы и каталоги).
docker container run -v /var/lib/container1:/var ubuntu — аналогично команде выше, создает общий том локальной машины и запускаемого контейнера на основе образа ubuntu.
Логи.
docker logs f45045c3298b — выведет лог событий из контейнера с id = f45045c3298b . список запущенных контейнеров и их id docker ps.
docker logs -f id_container — вывод в режиме реального времени лога событий из контейнера с заданным id.