Недавно я установил Docker native на Mac, переключившись с докер-машины. У меня есть контейнер с Zookeeper, который открывает порт на 2181. Однако этот процесс может занять около 10-15 секунд.Docker на Mac: как проверить порт для прослушивания в контейнере
Ранее с Докер-машина используется для проверки, был ли начал Zookeeper прослушивает порт, используя Netcat:
nc -z 192.168.99.100 2181
Netcat возвращает ненулевой код завершения, а Zookeeper запускается и как только это будет сделано, соединение выполнено успешно, а netcat возвращает ноль.
В случае с Docker Mac-native соединение всегда выполняется успешно, когда контейнер присутствует, но во время запуска Zookeeper он немедленно отключает соединение. Когда Zookeeper готов, он держит соединение открытым. Netcat не видит эту разницу, и «nc -z» всегда возвращает ноль.
Итак, мой вопрос: есть ли простой способ проверить снаружи контейнера, действительно ли Zookeeper начал прослушивать порт?
телнет работает так же, как Netcat здесь. Он также получает действительное соединение, но как только соединение установлено, докер сбрасывает его, поскольку Zookeeper еще не прослушивает. После запуска Zookeeper соединение остается открытым после установления. –
проверить мой обновленный ответ пожалуйста. –