14 KiB
Команды Docker
Введение
Рассмотрим команды, которые необходимо знать для использования Docker.
Список базовых команд:
- Справочная страница:
docker help
- Версия Dсocker:
docker version
- Базовая информация о работе Docker:
docker info
Поиск образов
Поиск можно осуществлять на сайте образов docker, но иногда можно искать и с помощью команд.
Почему это полезно? Мы быстрее получим необходимый список и сможем выбрать нужный Docker.
Обычный поиск:
docker search wordpress
???info "Пример резульата"
NAME DESCRIPTION STARS OFFICIAL wordpress The WordPress rich content management system… 5855 [OK] bitnami/wordpress Bitnami Secure Image for wordpress 281 bitnamicharts/wordpress Bitnami Helm chart for WordPress 2 elestio/wordpress Wordpress, verified and packaged by Elestio 6 secoresearch/wordpress Apache+PHP+Varnish+Wordpress 0 shinsenter/wordpress 🔋 (PHP / Wordpress) Production-ready Docker… 5 vulhub/wordpress 4 chainguard/wordpress Build, ship and run secure software with Cha… 0 corpusops/wordpress https://github.com/corpusops/docker-images/ 0 rootpublic/wordpress 0 centurylink/wordpress Wordpress image with MySQL removed. 14 erikzenker/wordpress wordpress docker image 0 arm64v8/wordpress The WordPress rich content management system… 21 arm32v7/wordpress The WordPress rich content management system… 16 tutum/wordpress Out-of-the-box Wordpress docker image 42 amd64/wordpress The WordPress rich content management system… 2 demyx/wordpress Non-root Docker image running Alpine Linux, … 2 i386/wordpress The WordPress rich content management system… 1 ppc64le/wordpress The WordPress rich content management system… 1 wodby/wordpress Vanilla WordPress container image 2 itherz/wordpress Wordpress 0 s390x/wordpress The WordPress rich content management system… 5 spatialy/wordpress Wordpress + PHP Extensions 0 arm32v5/wordpress The WordPress rich content management system… 0 mips64le/wordpress The WordPress rich content management system… 1
Здесь мы получаем список из 4 столбцов:
- NAME Имя
- DESCRIPTION Описание
- STARS Звезды, которые отображат популярность образов
- OFFICIAL Помечаються оффициальные образы
Аргументы:
-f(--filter) Фильтрует результат.-f stars=3больше 3 звезд-f is-offical=trueтолько оффициальные
--formatПреобразование вывода--format "{{.Name}}"Имя образа--format {{.StarCount}}Кол-во звезд--format {{.Description}}Описание--format {{.IsOffical}}официальный образ
--limitОграничивает список до определенного количества--limit 5Выводит 5 образов
--no-truncНе сокращенный вариант описания
Поиск с аргументами:
docker search --limit 5 --format "{{.Name}}: {{.Description}}" --no-trunc wordpress
???info "Пример результата"
wordpress: The WordPress rich content management system can utilize plugins, widgets, and themes. bitnami/wordpress: Bitnami Secure Image for wordpress bitnamicharts/wordpress: Bitnami Helm chart for WordPress elestio/wordpress: Wordpress, verified and packaged by Elestio secoresearch/wordpress: Apache+PHP+Varnish+Wordpress
Установка образа
Теперь попробуем установить образ nginx.
Установка образа:
docker pull nginx
???info "Пример вывода"
Using default tag: latest latest: Pulling from library/nginx 02d7611c4eae: Pull complete dcea87ab9c4a: Pull complete 35df28ad1026: Pull complete 99ae2d6d05ef: Pull complete a2b008488679: Pull complete d03ca78f31fe: Pull complete d6799cf0ce70: Pull complete Digest: sha256:ca871a86d45a3ec6864dc45f014b11fe626145569ef0e74deaffc95a3b15b430 Status: Downloaded newer image for nginx:latest docker.io/library/nginx:latest
Смотря от загрузки сети, через некоторое время, у нас получиться установить nginx.
!!!note "Обратите внимание" Оффициальный поставщик образов Docker имеет имя library.
Когда мы устанавливаем оффициальные образа, можно не указывать поставщика.
Установка определенной версии:
docker pull nginx:1.29-trixie
Под версии в Docker подразумеваются Tags. Теги просматриваются на сайте hub.docker.com. В нашем случае это данный образ.
К сожалению, с помощью команды docker нельзя просмотреть список версий. Можно с помощью api или, как было написанно выше - на сайте.
![]() |
|---|
| Теги Nginx |
Просмотр установленных образов
После устанвки, можно посмотреть какие образы у нас установлены:
docker images
???info "Пример вывода"
REPOSITORY TAG IMAGE ID CREATED SIZE ... nginx latest 058f4935d1cb 10 days ago 152MB ...
Мы получим пять колонок:
- REPOSITORY имя образа (репозитория). Обычно пишеться
имя поставщика/образ - TAG версия (тег) изображения
- IMAGE ID ID изображения
- CREATED Когда данный образ обновлялся
- SIZE Размер образа
Запуск контейнера
Запуск происходит достаточно простым способом. Попробуем запустить контейнер nginx, который только что установили.
docker run nginx
Веб сервис nginx запуститься и отобразит логи.
???info "Пример логов"
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh /docker-entrypoint.sh: Configuration complete; ready for start up 2026/01/14 14:30:15 [notice] 1#1: using the "epoll" event method 2026/01/14 14:30:15 [notice] 1#1: nginx/1.29.4 2026/01/14 14:30:15 [notice] 1#1: built by gcc 14.2.0 (Debian 14.2.0-19) 2026/01/14 14:30:15 [notice] 1#1: OS: Linux 6.1.0-27-amd64 2026/01/14 14:30:15 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576 2026/01/14 14:30:15 [notice] 1#1: start worker processes 2026/01/14 14:30:15 [notice] 1#1: start worker process 30 2026/01/14 14:30:15 [notice] 1#1: start worker process 31 2026/01/14 14:30:15 [notice] 1#1: start worker process 32 2026/01/14 14:30:15 [notice] 1#1: start worker process 33 2026/01/14 14:30:15 [notice] 1#1: start worker process 34 2026/01/14 14:30:15 [notice] 1#1: start worker process 35 2026/01/14 14:30:15 [notice] 1#1: start worker process 36 2026/01/14 14:30:15 [notice] 1#1: start worker process 37 2026/01/14 14:30:15 [notice] 1#1: start worker process 38 2026/01/14 14:30:15 [notice] 1#1: start worker process 39 2026/01/14 14:30:15 [notice] 1#1: start worker process 40 2026/01/14 14:30:15 [notice] 1#1: start worker process 41 2026/01/14 14:30:15 [notice] 1#1: start worker process 42 2026/01/14 14:30:15 [notice] 1#1: start worker process 43 2026/01/14 14:30:15 [notice] 1#1: start worker process 44 2026/01/14 14:30:15 [notice] 1#1: start worker process 45
Но зайти на стандартную страницу по порту 80, вероятнее вссего не получиться.
Проброс портов
Попробуем пробросить HTTP порт 80.
docker run -p 80:80 nginx
-p 80:80-[HOST]:[CONTAINER]- проброс порта на машину хоста.- Тем же самым можно пробросить на другие порты хоста
81:80,8080:80и так далее. Это помогает избежать конфликтов, когда запущено несколько портов и они используют одни и те же порты.
- Тем же самым можно пробросить на другие порты хоста
Теперь, когда перейдем на адрес машины, то мы получим страницу по умолчанию:
- http://localhost - кто поднимает контейнеры на основной машине или пробрасывает порты.
http://[адрес хоста с активным контейнером]- прямой доступ с удаленной машины.
???warning "Информация для тех, которые поднимают первый раз сайты" Браузер может запросить о подтверждения входа. Это из-за того, что используеться http протокол, а не https.
Принимаем риски.
???info "Стартовая страница nginx"

Монтирование каталога
Однозначно, если мы говорим про nginx, нам нужен прямой доступ к /usr/share/nginx/html, да бы иметь доступ к исходному сайту.
docker run -p 80:80 -v /mnt/nginx:/usr/share/nginx/html:ro nginx
-v /mnt/nginx:/usr/share/nginx/html:ro-[HOST]:[CONTAINER]:[PERMISSION]- подключение каталога контейнера к машине с правами только для четения.ro- только для четения не для контейнера, а для самого контейнера.- Это полезно, когда нужно что бы процесс в контейнере случайно не изменил сруктуру сайта.
- Если не нужно прописывать такие обраничения, то не устанавливаем данный параметр и простовводим
-v /mnt/nginx:/usr/share/nginx/html
- Каталог автоматически создасться, если отсутствует.
!!!warning "Смотрите оф документацию по настройке NGINX" Это пример использования команд docker.
Читайте настройку.
Фоновый запуск
Контейнер уже готов для постоянного использования. Попробуем запустить в демоне.
docker run -p 80:80 -v /mnt/nginx:/usr/share/nginx/html:ro -d nginx
-d- Процесс будет запущен в фоне.
Просмотр рабочих контейнеров
Да бы проверить, какие контейнеры работают на данный момент, прописываем данную команду:
docker ps
📌 Документ в разработке. Следующие разделы в работе:
- Управление контейнерами (
exec,logs,ps,stop,rm) - Работа с томами (Volumes)
- Сети Docker
