Ответ 1
Другие упоминали docker logs $container_id
для просмотра выходных данных приложения. Это всегда будет моей первой проверкой.
Затем вы можете запустить docker inspect $container_id
чтобы просмотреть подробную информацию о состоянии, например:
"State": {
"Status": "exited",
"Running": false,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 0,
"ExitCode": 2,
"Error": "",
"StartedAt": "2016-06-28T21:26:53.477229071Z",
"FinishedAt": "2016-06-28T21:26:53.478066987Z"
},
Важной строкой является "OOMKilled", которое будет истинным, если вы превысите пределы памяти контейнера и Docker убьет ваше приложение. Вы также можете посмотреть код выхода, чтобы узнать, определяет ли он причину выхода для вашего приложения.
Обратите внимание, это только указывает на то, что docker сам убивает ваш процесс, и требует, чтобы вы установили ограничение памяти для вашего контейнера. Вне докера ядро Linux может остановить ваш процесс, если самому хосту не хватит памяти. Linux часто пишет в журнал в /var/log, когда это происходит. С помощью Docker Desktop на Windows и Mac вы можете настроить память, выделенную для встроенной виртуальной машины Linux, в настройках докера.