Docker: The container name is already in use — что делать
Контейнер с таким именем уже есть — запущенный или остановленный. Удалите старый, переименуйте его или дайте новому другое имя. Ниже — как сделать это и не потерять данные.
Содержание 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 webdocker 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 и более старых версиях часть сообщений звучит иначе.
Источники
- Исходный код Docker 29.1.3: errors.go — текст ошибки о занятом имени.
- Исходный код Docker 29.1.3: names.go — проверка имени при создании контейнера.
- Исходный код Docker 29.1.3: state.go — статусы Up, Exited и Created.
- Документация Docker: docker container rm — удаление контейнера.
- Документация Docker: docker container rename — переименование контейнера.
- Документация Docker: docker run — публикация портов, флаг --rm и коды выхода.
Сверено 10 октября 2026 года.
Что почитать дальше
Проверено и обновлено: 10.10.2026