Edge-home-orchestration-go: Resposta de erro do daemon: não é possível obter logs do contêiner que está morto ou marcado para remoção

Criado em 13 jun. 2020  ·  13Comentários  ·  Fonte: lf-edge/edge-home-orchestration-go

A imagem do Docker está funcionando bem no meu sistema, mas quando a executo na orquestração de borda, ela me mostra os erros:
Screenshot from 2020-06-13 10-40-25
Funcionando perfeitamente no meu sistema:
Screenshot from 2020-06-13 10-42-01

Aqui está o comando que estou executando:
curl -X POST "192.168.43.11:56001/api/v1/orchestration/services" -H "aceitar: application / json" -H "Content-Type: application / json" -d "{\" ServiceName \ ": \ "age_detection \", \ "ServiceInfo \": [{\ "ExecutionType \": \ "container \", \ "ExecCmd \": [\ "docker \", \ "run \", \ "- it \" , \ "- rm \", \ "- device = / dev / video0 \", \ "- e \", \ "DISPLAY = $ DISPLAY \", \ "- v \", \ "$ XSOCK: $ XSOCK \ ", \" - v \ ", \" $ XAUTH: $ XAUTH \ ", \" - e \ ", \" XAUTHORITY = $ XAUTH \ ", \" - e \ ", \" QT_X11_NO_MITSHM = 1 \ ", \" animeshj123 / age_det_ image: 02 \ "]}], \" StatusCallbackURI \ ": \" http://192.168.43.11 : 8888 / api / v1 / services / notification \ "}"

bug question

Comentários muito úteis

Está funcionando no baobá. Obrigada.

Todos 13 comentários

@ Deepak-Enc reproduzi com sucesso o seu caso com um erro e também iniciei com sucesso o contêiner usando orquestração de borda.
Abaixo está o comando que eu fiz para lançar com sucesso

virtual-pc@virtualpc-VirtualBox:~$ curl -X POST "127.0.0.1:56001/api/v1/orchestration/services" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"ServiceName\": \"age_detection\", \"ServiceInfo\": [{ \"ExecutionType\": \"container\", \"ExecCmd\": [ \"docker\", \"run\", \"-it\",\"--rm\",\"--device=/dev/video0\", \"--net=host\",\"--ipc=host\", \"-e\",\"DISPLAY=$DISPLAY\",\"-v\",\"/tmp/.X11-unix:/tmp/.X11-unix\",\"-e\",\"QT_X11_NO_MITSHM=1\",\"animeshj123/age_det_image:02\"]}], \"StatusCallbackURI\": \"http://127.0.0.1:8888/api/v1/services/notification\"}"
{"Message":"ERROR_NONE","RemoteTargetInfo":{"ExecutionType":"container","Target":"10.0.2.15"},"ServiceName":"age_detection"}
  1. As configurações do meu servidor X são ligeiramente diferentes, mas você pode usar as suas próprias se funcionar para você. A principal coisa a prestar atenção às aspas. No seu exemplo, eles não estão corretos (acho que isso é um erro de digitação).
  2. O erro que você encontrou foi uma consequência da execução do contêiner duas vezes. O programa que funciona dentro dá erro, porque não consegue acessar a webcam.

    Antes de começar, certifique-se de que tal contêiner não seja iniciado antes de usar o comando
virtual-pc@virtualpc-VirtualBox:~$ docker ps -a
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS               NAMES
0d73793665d9        animeshj123/age_det_image:02   "python detect_age_c…"   16 minutes ago      Up 16 minutes                           crazy_visvesvaraya
f1a1dacb70fd        edge-orchestration:baobab      "sh run.sh"              16 minutes ago      Up 16 minutes                           edge-orchestration
virtual-pc@virtualpc-VirtualBox:~$ 

Pare o contêiner em execução e, depois disso, você pode começar a usar orquestração de borda

Por favor, dê feedback qual é o seu resultado? Espero que tudo tenha dado certo para você. Se você tiver dúvidas, ficaremos felizes em responder!

Recebendo o mesmo erro.
Screenshot from 2020-06-15 15-09-29

Screenshot from 2020-06-15 15-10-09

Screenshot from 2020-06-15 15-10-37

Você precisa se certificar de que o programa no contêiner animeshj123/age_det_image:02 inicia corretamente, pois a linha container execution status : 1 mostra que ocorreu um erro no próprio programa.
изображение

Eu sugiro fazer isso. Depois disso, vejo que tudo funciona corretamente:

virtual-pc@virtualpc-VirtualBox:~$ sudo docker run --rm -ti --device=/dev/video0 --net=host --ipc=host -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --env="QT_X11_NO_MITSHM=1" animeshj123/age_det_image:02
[sudo] password for virtual-pc: 
[INFO] loading face detector model...
[INFO] loading age detector model...
[INFO] starting video stream...
^CTraceback (most recent call last):
  File "detect_age_cam.py", line 121, in <module>
    results = detect_and_predict_age(frame, faceNet, ageNet,
  File "detect_age_cam.py", line 29, in detect_and_predict_age
    detections = faceNet.forward()
KeyboardInterrupt
virtual-pc@virtualpc-VirtualBox:~$ docker ps -a
CONTAINER ID        IMAGE                       COMMAND             CREATED             STATUS              PORTS               NAMES
f1a1dacb70fd        edge-orchestration:baobab   "sh run.sh"         17 hours ago        Up 17 hours                             edge-orchestration
virtual-pc@virtualpc-VirtualBox:~$ curl -X POST "127.0.0.1:56001/api/v1/orchestration/services" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"ServiceName\": \"age_detection\", \"ServiceInfo\": [{ \"ExecutionType\": \"container\", \"ExecCmd\": [ \"docker\", \"run\", \"-it\",\"--rm\",\"--device=/dev/video0\", \"--net=host\",\"--ipc=host\", \"-e\",\"DISPLAY=$DISPLAY\",\"-v\",\"/tmp/.X11-unix:/tmp/.X11-unix\",\"-e\",\"QT_X11_NO_MITSHM=1\",\"animeshj123/age_det_image:02\"]}], \"StatusCallbackURI\": \"http://127.0.0.1:8888/api/v1/services/notification\"}"
{"Message":"ERROR_NONE","RemoteTargetInfo":{"ExecutionType":"container","Target":"10.0.2.15"},"ServiceName":"age_detection"}virtual-pc@virtualpc-VirtualBox:~$ 
virtual-pc@virtualpc-VirtualBox:~$ 

Eu também vejo esse erro.
изображение
pode ser corrigido se reiniciar o docker (reiniciar o docker de serviço)

Mesmo contêiner funcionando bem em sua borda e também em meu host local que
significa que o programa não tem problema. pode haver um problema no meu
orquestração de ponta como resolver esse problema.

Na segunda-feira, 15 de junho de 2020, 16:25 tdrozdovsky, [email protected] escreveu:

Você precisa ter certeza de que o programa na imagem animeshj123 / age_det_ : 02
o contêiner inicia corretamente, conforme o status de execução do contêiner: 1 linha
mostra que ocorreu um erro no próprio programa.
[imagem: изображение]
https://user-images.githubusercontent.com/45031429/84649763-bd171c00-af0f-11ea-9ff6-7ba80aea6662.png

Eu sugiro fazer isso. Depois disso, vejo que tudo funciona corretamente:

virtual-pc @ virtualpc-VirtualBox : ~ $ sudo docker run --rm -ti --device = / dev / video0 --net = host --ipc = host -e DISPLAY = $ DISPLAY -v /tmp/.X11- unix: /tmp/.X11-unix --env = "QT_X11_NO_MITSHM = 1" animeshj123 / age_det_ imagem: 02

[sudo] senha para pc virtual:

[INFO] carregando modelo de detector facial ...

[INFO] carregando modelo de detector de idade ...

[INFO] iniciando stream de vídeo ...

^ CTraceback (última chamada mais recente):

Arquivo "detect_age_cam.py", linha 121, em

results = detect_and_predict_age(frame, faceNet, ageNet,

Arquivo "detect_age_cam.py", linha 29, em detect_and_predict_age

detections = faceNet.forward()

KeyboardInterrupt

virtual-pc @ virtualpc-VirtualBox : ~ $ docker ps -a

COMANDO DE IMAGEM DE ID DE CONTÊINER CRIADO NOMES DE PORTOS DE STATUS

f1a1dacb70fd orquestração de borda : baobab "sh run.sh" 17 horas atrás Até 17 horas de orquestração de borda

virtual-pc @ virtualpc-VirtualBox : ~ $ curl -X POST "127.0.0.1:56001/api/v1/orchestration/services" -H "aceitar: application / json" -H "Content-Type: application / json" - d "{\" ServiceName \ ": \" age_detection \ ", \" ServiceInfo \ ": [{\" ExecutionType \ ": \" container \ ", \" ExecCmd \ ": [\" docker \ ", \" execute \ ", \" - it \ ", \" - rm \ ", \" - device = / dev / video0 \ ", \" - net = host \ ", \" - ipc = host \ ", \" - e \ ", \" DISPLAY = $ DISPLAY \ ", \" - v \ ", \" / tmp / .X11-unix: /tmp/.X11-unix \ ", \" - e \ ", \" QT_X11_NO_MITSHM = 1 \ ", \" animeshj123 / age_det_ image: 02 \ "]}], \" StatusCallbackURI \ ": \" http://127.0.0.1 : 8888 / api / v1 / services / notification \ "}"

{"Message": "ERROR_NONE", "RemoteTargetInfo": {"ExecutionType": "container", "Target": "10.0.2.15"}, "ServiceName": "age_detection"} virtual-pc @ virtualpc-VirtualBox : ~ $

virtual-pc @ virtualpc-VirtualBox : ~ $

Eu também vejo esse erro.
[imagem: изображение]
https://user-images.githubusercontent.com/45031429/84649385-1d598e00-af0f-11ea-9b6a-43a7780c7cf5.png
pode ser corrigido se reiniciar o docker (reiniciar o docker de serviço)

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/lf-edge/edge-home-orchestration-go/issues/91#issuecomment-644056795 ,
ou cancelar
https://github.com/notifications/unsubscribe-auth/ANR2JO4EKLU3UYAYP4OSZB3RWX4ZPANCNFSM4N42UCTA
.

Abaixo está um exemplo de como pode não funcionar corretamente

virtual-pc@virtualpc-VirtualBox:~$ docker run --rm -ti --device=/dev/video0 --net=host --ipc=host -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --env="QT_X11_NO_MITSHM=1" animeshj123/age_det_image:02
[sudo] password for virtual-pc: 
[INFO] loading face detector model...
[INFO] loading age detector model...
[INFO] starting video stream...
[ WARN:0] global /io/opencv/modules/videoio/src/cap_v4l.cpp (887) open VIDEOIO(V4L2:/dev/video0): can't open camera by index
Traceback (most recent call last):
  File "detect_age_cam.py", line 117, in <module>
    frame = imutils.resize(frame, width=400)
  File "/usr/local/lib/python3.8/site-packages/imutils/convenience.py", line 69, in resize
    (h, w) = image.shape[:2]
AttributeError: 'NoneType' object has no attribute 'shape'

agora olhe para o código de erro

virtual-pc@virtualpc-VirtualBox:~$ echo $?
1

o erro é o mesmo que o orquestrador de bordas retorna

Acho que é necessário procurar os motivos pelos quais o programa não funciona corretamente (por exemplo, não há acesso a /dev/video0 ou outros)

Esclareça minha dúvida. Ele está funcionando bem na minha máquina host, o que significa que não há nenhum problema no contêiner do docker ou no arquivo do docker. Pode haver um problema com a orquestração de borda porque não consigo detectar no arquivo contêiner ou docker.

@ Deepak-Enc Descreva muito mais em detalhes sobre o que é "um problema com orquestração de borda". Do meu entendimento, seu contêiner de direcionamento é executado com sucesso em seu host local por meio de um arquivo docker container / docker, mas falha quando você tenta executá-lo em orquestração de borda. Guiámos várias recomendações, mas ainda não está claro como resolver este problema. Estamos corretos?
@ suresh-lc Qual é a sua opinião? Não parece ser apenas um problema de configuração.

2020/06/16 04:27:56 containerexecutor.go: 84: [containerexecutor] criar contêiner: c22c72a303
2020/06/16 04:28:01 containerexecutor.go: 102: [containerexecutor] status de execução do contêiner: 1
2020/06/16 04:28:01 containerexecutor.go: 111: [containerexecutor] Resposta de erro do daemon: não é possível obter logs do contêiner que está morto ou marcado para remoção
2020/06/16 04:28:01 orchestration_api.go: 340: [orchestrationapi] status do serviço alterado [appNames: age_detection] [status:]
2020/06/16 04:28:01 containerexecutor.go: 122: [containerexecutor] Resposta de erro do daemon: remoção do contêiner c22c72a303bff50d18b4af5d5b7d644256cdd8fb2c7d2b08ccfa2ea225b3aa7f já está em andamento

Estou recebendo esses erros ao executar contêineres de detecção de idade (tempo real e vídeo) na orquestração de borda. Ele captura o primeiro quadro do aplicativo, mas, em seguida, o contêiner é automaticamente marcado como um contêiner inativo.

@ Deepak-Enc: Pudemos ver nos logs que o contêiner está sendo marcado para remoção após a leitura do primeiro quadro devido a algum erro. Mas exatamente por que também estamos tentando encontrar. Você pode compartilhar o arquivo de log de erros completo. E também se você pudesse compartilhar o vídeo das etapas que você realizou, seria de grande ajuda.

Abaixo está um vídeo de como um contêiner funciona sob orquestração de borda

Ubuntu_v16_04 [em execução] - Oracle VM VirtualBox 6_16_2020 9_30_15 AM.zip

O log que você enviou mostra que o aplicativo no contêiner não foi concluído corretamente. Mais dados necessários

@ Deepak-Enc: Você pode pegar o ramo Baobab e experimentar o cenário.
Parece que a lista de permissões de contêineres não está sendo feita para o serviço iniciado a partir da orquestração de borda.
err: = verifier.GetInstance (). ContainerIsInWhiteList (s.ParamStr [paramLen-1]).

Portanto, você pode tentar uma vez com o ramo Baobab e nos contar o resultado.

Está funcionando no baobá. Obrigada.

Problema resolvido. @ suresh-lc @tdrozdovsky @ Deepak-Enc Obrigado por todos os seus interesses e paixão!

Esta página foi útil?
0 / 5 - 0 avaliações