Как узнать, что контейнер запущен и работает (Dockerode)?

#node.js #docker #dockerode

Вопрос:

Я запускаю docker, используя run команду dockerode.

     let dockerEvent = docker.run('imageName', [], process.stdout, function(err) {
    if(err) {
        console.log("Error while starting docker", err);
    }
});
 

Мне нужно что-то сделать, как только контейнер docker будет запущен.
Как узнать, когда контейнер docker запускается с помощью библиотеки dockerode?

Комментарии:

1. Если бы вы не использовали Docker, а вместо этого использовали, скажем child_process.exec() , как бы вы определили, запущен ли подпроцесс? Можете ли вы сделать то же самое с Докером?

2.@DavidMaze Возможно через код выхода «запуск докера» повторно. docker предоставляет сокет web api/unix, где вы можете прослушивать события через curl --unix-socket /var/run/docker.sock http://localhost/events docs.docker.com/engine/api/v1.41/#operation/SystemEvents Не должно быть трудно принять это в node.js и прослушивайте конкретные события (пример curl был для тестирования, запустите его, запустите новый контейнер и посмотрите, что он регистрирует) или с помощью «dockerode» -> docker.getEvents(options)