Ошибка запуска прокси-сервера пользователя: listen tcp 0.0.0.0:2049: bind: адрес уже используется - PullRequest
1 голос
/ 05 апреля 2019

В Ubuntu 18.04 я пытаюсь установить Hyperledger Cello , и во время установки я получаю:

make[2]: Entering directory '/home/julien/cello'
docker-compose -f bootup/docker-compose-files/docker-compose-nfs.yml up -d --no-recreate
WARNING: Found orphan containers (cello-user-dashboard, cello-operator-dashboard, cello-watchdog, cello-keycloak-server, cello-parse-server, cello-dashboard_rabbitmq, cello-mongo, cello-keycloak-mysql, cello-engine) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Starting cello-nfs ... error

ERROR: for cello-nfs  Cannot start service nfs: driver failed programming external connectivity on endpoint cello-nfs (d1be7a4999731983a12df9f1fb6484c7adf669be7edf01c6d962856ed8a6846f): Error starting userland proxy: listen tcp 0.0.0.0:2049: bind: address already in use

ERROR: for nfs  Cannot start service nfs: driver failed programming external connectivity on endpoint cello-nfs (d1be7a4999731983a12df9f1fb6484c7adf669be7edf01c6d962856ed8a6846f): Error starting userland proxy: listen tcp 0.0.0.0:2049: bind: address already in use
ERROR: Encountered errors while bringing up the project.

При попытке выяснить, какое приложение использует порт 2049, я делаю:

➜  cello git:(master) ✗ sudo netstat -pna | grep 2049
tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::2049                 :::*                    LISTEN      -                   
udp        0      0 0.0.0.0:2049            0.0.0.0:*                           -                   
udp6       0      0 :::2049                 :::*                                -                   
unix  3      [ ]         STREAM     CONNECTED     204951   18122/brave --type=  
unix  3      [ ]         STREAM     CONNECTED     204950   5193/brave           

Но у меня нет названия приложения.

Я также пытался удалить контейнеры с

docker rm -f $(docker ps -aq)

как сказано в этом посте , но это не сработало.

Как мне сделать, чтобы освободить этот порт?

Ответы [ 2 ]

2 голосов
/ 05 апреля 2019

Похоже, что на вашем хосте работает сервер NFS.Когда вы запускаете netstat -p ... от имени пользователя root и не видите PID для порта, как это ...

tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::2049                 :::*                    LISTEN      -                   
udp        0      0 0.0.0.0:2049            0.0.0.0:*                           -                   
udp6       0      0 :::2049                 :::*                                -                   

... это обычно означает, что к этому порту привязана служба ядра.Отключение сервера NFS ядра (при условии, что вы его не используете) должно позволить запустить ваш контейнер.

2 голосов
/ 05 апреля 2019

Вы можете попробовать:

docker stop $(docker ps -a -q)
docker ps # again to make sure containers is off
sudo lsof -i tcp:2049 # now you get and list of process running and using 2049 port find and copy PID
sudo kill -9 yout_PID

Теперь, когда порт 2049 уничтожен, попробуйте снова запустить контейнеры ...

...