Docker Compose: «порты недоступны», хотя ни один контейнер не использует порт [закрыто]Linux

Ответить
Anonymous
 Docker Compose: «порты недоступны», хотя ни один контейнер не использует порт [закрыто]

Сообщение Anonymous »

Описание:
Я запускаю Docker Desktop в Arch Linux и использую docker Compose для запуска локального стека разработки.
Когда контейнер не запускается из-за конфликта портов, контейнер останавливается, но процессы docker-proxy продолжают работать и продолжают связывать порты хоста.
Docker сообщает о том, что порты свободны (docker ps не показывает ничего связанного), но ОС сообщает, что порты все еще заняты использование.
Это предотвращает перезапуск контейнеров до тех пор, пока прокси-процессы не будут завершены вручную.
Необработанная ошибка после запуска docker compose up -d:

`Ответ об ошибке от демона: порты недоступны: открытый порт TCP 0.0.0.0:8025 -> 127.0.0.1:0: прослушивать tcp4 0.0.0.0:8025: привязка: адрес уже используется`
Шаги по воспроизведению:
1. Запустите Docker Desktop в Arch Linux
2. Запустите docker Compose Up с привязкой службы к порту хоста (например, 8025, 8081, 444)
3. Контейнер выходит из строя с сообщением «привязка: адрес уже используется»
4. Контейнер останавливается и не отображается в `docker ps`
5. Порт остается привязанным в соответствии с `ss -ltnp`
Дополнительная информация/выполнено устранение неполадок:
Работает - sudo ss -ltnp | grep 8025, выходные данные:

Код: Выделить всё

LISTEN 0      4096         0.0.0.0:8025       0.0.0.0:*    users:(("docker-proxy",pid=2050,fd=8))
LISTEN 0      4096            [::]:8025          [::]:*    users:(("docker-proxy",pid=2057,fd=8))
Обходной путь:
Завершение процесса docker-proxy вручную освобождает порт:

Код: Выделить всё

sudo ss -ltnp | grep (affected port)

Код: Выделить всё

sudo kill -9 
После завершения прокси-процесса затронутый контейнер может быть успешно запущен.
Однако это не полный обходной путь:
  • При каждом перезапуске требуется ручное вмешательство.
  • Он не объясняет, почему порт остается связанным после завершения работы контейнера.
  • После перезапуска через Docker Compose, контейнер WordPress представляет начальный экран установки, указывающий, что состояние приложения (данные базы данных и/или тома) не сохраняется между запусками


Подробнее здесь: https://stackoverflow.com/questions/798 ... -using-the
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»