Skip to content

Команды Docker

Введение

Рассмотрим команды, которые необходимо знать для использования Docker.

Список базовых команд:

  • Справочная страница:
    docker help
    
  • Версия Dсocker:
    docker version
    
  • Базовая информация о работе Docker:
    docker info
    

Поиск образов

Поиск можно осуществлять на сайте образов docker, но иногда можно искать и с помощью команд.

Почему это полезно? Мы быстрее получим необходимый список и сможем выбрать нужный Docker.

Обычный поиск:

docker search wordpress

Пример резульата
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 

Пример результата
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

Пример вывода
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.

Обратите внимание

Оффициальный поставщик образов Docker имеет имя library.

Когда мы устанавливаем оффициальные образа, можно не указывать поставщика.

Установка определенной версии:

docker pull nginx:1.29-trixie

Под версии в Docker подразумеваются Tags. Теги просматриваются на сайте hub.docker.com. В нашем случае это данный образ.

К сожалению, с помощью команды docker нельзя просмотреть список версий. Можно с помощью api или, как было написанно выше - на сайте.

image
Теги Nginx

Просмотр установленных образов

После устанвки, можно посмотреть какие образы у нас установлены:

docker images

Пример вывода
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 запуститься и отобразит логи.

Пример логов
/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://[адрес хоста с активным контейнером] - прямой доступ с удаленной машины.
Информация для тех, которые поднимают первый раз сайты

Браузер может запросить о подтверждения входа. Это из-за того, что используеться http протокол, а не https.

Принимаем риски.

Стартовая страница nginx

Docker nginx title web site

Монтирование каталога

Однозначно, если мы говорим про 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
    • Каталог автоматически создасться, если отсутствует.

Смотрите оф документацию по настройке 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