Ошибки

Docker: The container name is already in use — что делать

Контейнер с таким именем уже есть — запущенный или остановленный. Удалите старый, переименуйте его или дайте новому другое имя. Ниже — как сделать это и не потерять данные.

Обновлено 10.10.2026≈ 3 мин чтения
Содержание 7

Как выглядит ошибка

docker: Error response from daemon: Conflict. The container name "/web" is already in use by container "4f1c…". You have to remove (or rename) that container to be able to reuse that name.

Run 'docker run --help' for more information

"/web" — имя, которое вы указали в --name (Docker хранит его с косой чертой впереди). Второе в кавычках — длинный номер контейнера, который уже носит это имя; здесь он сокращён.

Имя держит и остановленный контейнер. Без флага --rm команда docker run оставляет контейнер после остановки, и он хранит своё имя, пока его не удалят. Повторный запуск той же команды docker run --name web … и даёт эту ошибку.

Шаг 1. Найдите старый контейнер

Команды на этой странице вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.

docker ps -a

Флаг -a показывает и остановленные контейнеры. Найдите своё имя в колонке NAMES и посмотрите колонку STATUS:

  • Up … — контейнер работает;
  • Exited (…) … ago — остановлен, в скобках код выхода;
  • Created — создан, но не запускался: так бывает, если запуск сорвался на ошибке.

Шаг 2. Решите, что делать со старым

Старый не нужен — удалите его

Всё, что программа записала внутрь контейнера, а не в подключённый том или папку сервера, удалится вместе с ним. Если в контейнере база данных или загруженные файлы, сначала проверьте, где они хранятся.

Что подключено к контейнеру, покажет команда:

docker inspect -f '{{json .Mounts}}' web

Ответ [] значит, что ни томов, ни папок сервера к контейнеру не подключено — все данные внутри него. Если данные нужны, не удаляйте контейнер, а переименуйте (ниже). Если не нужны — остановите и удалите:

docker stop web
docker rm web

docker stop для уже остановленного контейнера ничего не меняет — её можно выполнять в любом случае.

Старый нужен — переименуйте его

docker rename web web-old

Имя web освободится, а старый контейнер останется под именем web-old со всеми данными.

Запускайте разовые контейнеры с --rm

Для разовых запусков добавьте флаг --rm: контейнер удалится сам, когда остановится, вместе со своими безымянными томами. Имя освободится, и следующий запуск пройдёт без ошибки.

Шаг 3. Запустите контейнер снова

Повторите свою команду docker run --name web … с теми же параметрами. Проверьте:

docker ps

В строке с именем web в колонке STATUS должно стоять Up.

Если проект запущен через docker compose

Compose сам даёт контейнерам имена и сам пересоздаёт их. Ошибка появляется, если в compose-файле задано container_name, а контейнер с этим именем создан вручную или другим проектом. Удалите или переименуйте его, как в шаге 2, и запустите проект:

docker compose up -d

Тексты ошибок сверены с исходным кодом Docker 29.1.3 — эта версия ставится из пакетов Ubuntu 24.04. В Docker 28 и более старых версиях часть сообщений звучит иначе.

Источники

Сверено 10 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 10.10.2026