Ошибка Docker Swarm Init: адрес уже используется - PullRequest
0 голосов
/ 29 ноября 2018

Я прошёл учебное пособие по докеру на https://docs.docker.com/v17.12/get-started/part3/#take-down-the-app-and-the-swarm и дошел до той части, где мы настраиваем наш первоначальный рой докеров.

Сначала у меня это работало, нозатем пришлось согласовать различия между snap install docker и apt install docker в моей системе.После этого, когда я пытаюсь запустить docker swarm init, мне говорят:

Error response from daemon: manager stopped: failed to listen on remote API address: listen tcp 0.0.0.0:2377: bind: address already in use

У меня нет других запущенных образов или служб Docker, поэтому я нормально убиваю или удаляю что угодно, но не могуКажется, выясняется, как очистить этот порт, чтобы я мог инициализировать новый рой.

Есть ли способ либо A) убить бегущего роя, либо B) перечислить доступные рои, чтобы я мог присоединитьсяи затем убить его оттуда как мастер роя?

Спасибо!

1 Ответ

0 голосов
/ 30 ноября 2018

Похоже, вы установили докер из обоих систем snap / apt, и вы должны удалить один из двух (один работает в режиме роя, а клиент докера подключается к тому, который не работает).

Чтобы найти процесс, выполняющий рой, используйте следующее:

sudo ss --tcp --listening --processes --numeric | grep ":2377"

В этом списке перечислены процессы, прослушивающие порт 2377, в моем случае я нахожу:

LISTEN   0      128     *:2377     *:*    users:(("dockerd",pid=1229,fd=24))

Теперь с помощью pid выможно найти местоположение процесса:

sudo readlink -f /proc/1229/exe

Если процесс происходит из snap, то вы знаете, что вы должны остановить его и удалить оснастку, чтобы он оставил инсталляцию только из apt-get (или viseversa, еслиВы хотите сохранить установку без проблем).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...