2016-10-20 3 views
0

Мне хотелось бы, чтобы последовательный способ сбросить контейнер докера в состояние ошибки, чтобы провести некоторое тестирование вокруг ошибок контейнера.Как положить контейнер докера в состояние ошибки?

Я надеялся, когда увидел bantl23/error на докере, но он с радостью начинает без ошибок.

+0

см. Https://github.com/docker/docker/issues/8294 – user2915097

+1

Какое состояние ошибки? – R0MANARMY

+0

Хорошо, что докер проверяет и удаляет некоторые вещи, упомянутые там в файловой системе, уверен, что вы когда-нибудь его сломаете –

ответ

0

Мне нравится идея контейнера, вы можете вызвать сбой по требованию извне - R0MANARMY «s точка действует, хотя - Docker контролирует процесс он запускает, и если процесс выходит, то контейнер идет в Exited состояния , на самом деле нет понятия состояния ошибки.

Сказав, что, если вы хотите проверить Exited контейнер, то изображение, которое вы упомянули делает работу, но она ограничена - она ​​работает, ожидает в течение 10 секунд, а затем выходит:

docker run -d bantl23/error 

Если вы хотите что-то вы можете контролировать снаружи, я поставил для этого очень простое изображение - sixeyed/bad-server. Это HTTP-сервер, который вы можете принудительно в состояние ошибки, нажав http://ip:8080/err:

> docker run -d -p 80:8080 sixeyed/bad-server 
8b4bd7ffd96d543c9b51c7709267894d2bc75daa99ea80250d5e7846f98a6526                   
> docker logs -f 8b4 
+ exec app 
Listening on port 8080                           
Responding to path: 
test                     
err! 
> docker ps --all 
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS      PORTS    NAMES 
8b4bd7ffd96d  sixeyed/bad-server "go-wrapper run" 37 seconds ago  Exited (1) 10 seconds ago       fervent_hawking 

Хотя logs были запущены, я ударил http://localhost/test, а затем http://localhost/err - который вызвал контейнер для выхода.

Смежные вопросы