Назад | Перейти на главную страницу

Контейнер memcache: Ошибка при запуске прокси-сервера пользователя: listen tcp 0.0.0.0:11211: bind: адрес уже используется

У меня проблемы с настройкой memcached на моем докере. Я получаю сообщение об ошибке при запуске: docker run --name = memcache -p 11211: 11211 -d memcached memcached -m 128

Это ошибка, возникающая после выполнения приведенной выше команды

docker: Error response from daemon: driver failed programming external connectivity on endpoint memcache (9f4bd30f7253ee185f6a160ef8e89d3f3c2d46f0361ec15f11a6975477c19430): Error starting userland proxy: listen tcp 0.0.0.0:11211: bind: address already in use.

В конце говорится, что выбранный порт уже занят. Итак, чтобы подтвердить, что memcached не прослушивает ни один из запущенных мной портов "докер ps -a", и вот результат:

CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                  NAMES
116acff4b1aa        memcached            "docker-entrypoint.s…"   10 minutes ago      Created                                    memcache
a4e1a6168bca        staticwebserver:v3   "/init.sh"               2 weeks ago         Up 16 hours         0.0.0.0:8002->80/tcp   lucid_mccarthy
a27174f8a988        staticwebserver:v3   "/init.sh"               2 weeks ago         Up 16 hours         0.0.0.0:8001->80/tcp   thirsty_shockley

Поскольку я не вижу, что контейнер (memcached) прослушивает любые порты, я хотел увидеть, какой процесс уже прослушивает порт 11211. Итак, я запустил netstat -pna | grep 11211

tcp        0      0 127.0.0.1:11211         0.0.0.0:*               LISTEN      5703/memcached

Вот я запуталась, memcached работает? Или что-то не так?

Я пытался убить демона, но он появляется снова, как только я его убиваю.

Кажется, что вы запускаете экземпляр memcached вне контейнера на том же порту. Вам нужно будет либо остановить этот внешний экземпляр, либо выбрать другой порт для публикации на хосте. Для остановки внешнего экземпляра это зависит от того, как вы его запускали, возможно, он находится в systemd. Вы можете работать с идентификатором процесса и искать родительские идентификаторы, пока не найдете, что его запускает, или вытащите дерево процессов с помощью ps axjf.