#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)