Docker: Перезагрузка контейнера: различия между версиями

Материал из КРАТКАЯ СПРАВОЧНАЯ DIGITAL-ORGY
Перейти к навигации Перейти к поиску
Новая страница: «# Обновление запущенного Docker-контейнера **Обновление Docker-контейнера** — это процесс применения новой версии базового образа (image) или новых конфигурационных настроек к уже существующему сервису. Поскольку Docker-контейнеры по своей природе неизменяемы (im...»
 
Нет описания правки
 
Строка 1: Строка 1:
# Обновление запущенного Docker-контейнера
= Перезагрузка контейнеров Docker =


**Обновление Docker-контейнера** — это процесс применения новой версии базового образа (image) или новых конфигурационных настроек к уже существующему сервису. Поскольку Docker-контейнеры по своей природе неизменяемы (immutable), их нельзя обновить «на лету». Процесс обновления всегда сводится к замене старого контейнера новым.
== Общая информация ==
Перезагрузка контейнера в Docker может потребоваться при изменении конфигурации, обновлении приложения или при возникновении ошибок. Docker предоставляет несколько способов перезапуска контейнеров: через командную строку и через Docker Compose.


---
----


## Оглавление
== Перезагрузка контейнера через CLI ==
* [Основной принцип работы](#основной-принцип-работы)
* [Способ 1: Использование Docker CLI (Ручное обновление)](#способ-1-использование-docker-cli-ручное-обновление)
* [Способ 2: Использование Docker Compose (Рекомендуемый)](#способ-2-использование-docker-compose-рекомендуемый)
* [Перезагрузка без обновления образа](#перезагрузка-без-обновления-образа)


---
=== Перезапуск одного контейнера ===
Для перезапуска контейнера используется команда:


## Основной принцип работы
<code bash>
docker restart <container_name_or_id>
</code>


Пример:


<code bash>
docker restart my_container
</code>


Чтобы обновить контейнер, необходимо выполнить следующий стандартизированный цикл действий:
Это остановит контейнер и запустит его снова.
1. **Pull**: Скачать новый образ.
2. **Stop**: Остановить текущий работающий контейнер.
3. **Remove**: Удалить старый контейнер (для освобождения имени и сетевых портов).
4. **Run**: Запустить новый контейнер с сохранением предыдущих параметров запуска.


> **Важно:** Удаление контейнера не приведет к потере ваших данных **только в том случае**, если они были предварительно вынесены из контейнера с помощью механизмов [Docker Volumes](https://docs.docker.com/storage/volumes/) (томов) или проброса локальных директорий (bind mounts).
----


---
=== Перезапуск с таймаутом ===
Можно указать время ожидания перед остановкой контейнера:


## Способ 1: Использование Docker CLI (Ручное обновление)
<code bash>
docker restart -t 10 my_container
</code>


Данный метод применяется, если контейнер был запущен вручную через терминал с помощью команды `docker run`. Обновление выполняется последовательностью следующих команд:
Где:
* <code>-t</code> — время в секундах перед принудительной остановкой


### 1. Загрузка обновленного образа
----
Сначала скачайте последнюю версию необходимого образа из реестра (например, Docker Hub):
 
```bash
=== Перезапуск всех контейнеров ===
docker pull <имя_образа>:<тег>
Перезапустить все запущенные контейнеры:
 
<code bash>
docker restart $(docker ps -q)
</code>
 
----
 
== Политика автоматического перезапуска ==
 
Docker поддерживает автоматический рестарт контейнеров:
 
<code bash>
docker run --restart=always -d nginx
</code>
 
Варианты:
* <code>no</code> — не перезапускать
* <code>on-failure</code> — только при ошибке
* <code>always</code> — всегда перезапускать
* <code>unless-stopped</code> — пока явно не остановлен
 
----
 
== Перезагрузка через Docker Compose ==
 
=== Перезапуск сервиса ===
Для перезапуска контейнера, описанного в docker-compose.yml:
 
<code bash>
docker-compose restart <service_name>
</code>
 
Пример:
 
<code bash>
docker-compose restart web
</code>
 
----
 
=== Перезапуск всех сервисов ===
 
<code bash>
docker-compose restart
</code>
 
----
 
=== Полная пересборка и перезапуск ===
Если необходимо пересобрать контейнеры:
 
<code bash>
docker-compose up -d --build
</code>
 
----
 
=== Перезапуск с удалением контейнеров ===
Полная остановка и удаление:
 
<code bash>
docker-compose down
docker-compose up -d
</code>
 
----
 
== Полезные команды ==
 
Проверить статус контейнеров:
 
<code bash>
docker ps
</code>
 
Просмотреть логи:
 
<code bash>
docker logs <container_name>
</code>
 
----
 
== Заключение ==
Перезапуск контейнеров — базовая операция при работе с Docker. Для простых случаев достаточно команды <code>docker restart</code>, а при использовании Docker Compose удобно управлять сервисами через <code>docker-compose restart</code> или <code>up</code>.

Текущая версия от 09:10, 2 мая 2026

Перезагрузка контейнеров Docker

Общая информация

Перезагрузка контейнера в Docker может потребоваться при изменении конфигурации, обновлении приложения или при возникновении ошибок. Docker предоставляет несколько способов перезапуска контейнеров: через командную строку и через Docker Compose.


Перезагрузка контейнера через CLI

Перезапуск одного контейнера

Для перезапуска контейнера используется команда:

docker restart <container_name_or_id>

Пример:

docker restart my_container

Это остановит контейнер и запустит его снова.


Перезапуск с таймаутом

Можно указать время ожидания перед остановкой контейнера:

docker restart -t 10 my_container

Где:

  • -t — время в секундах перед принудительной остановкой

Перезапуск всех контейнеров

Перезапустить все запущенные контейнеры:

docker restart $(docker ps -q)


Политика автоматического перезапуска

Docker поддерживает автоматический рестарт контейнеров:

docker run --restart=always -d nginx

Варианты:

  • no — не перезапускать
  • on-failure — только при ошибке
  • always — всегда перезапускать
  • unless-stopped — пока явно не остановлен

Перезагрузка через Docker Compose

Перезапуск сервиса

Для перезапуска контейнера, описанного в docker-compose.yml:

docker-compose restart <service_name>

Пример:

docker-compose restart web


Перезапуск всех сервисов

docker-compose restart


Полная пересборка и перезапуск

Если необходимо пересобрать контейнеры:

docker-compose up -d --build


Перезапуск с удалением контейнеров

Полная остановка и удаление:

docker-compose down docker-compose up -d


Полезные команды

Проверить статус контейнеров:

docker ps

Просмотреть логи:

docker logs <container_name>


Заключение

Перезапуск контейнеров — базовая операция при работе с Docker. Для простых случаев достаточно команды docker restart, а при использовании Docker Compose удобно управлять сервисами через docker-compose restart или up.