Edge-home-orchestration-go: デーモンからのエラー応答:デッドまたは削除のマークが付けられたコンテナーからログを取得できません

作成日 2020年06月13日  ·  13コメント  ·  ソース: lf-edge/edge-home-orchestration-go

Dockerイメージは私のシステムでは正常に実行されていますが、エッジオーケストレーションで実行すると、エラーが表示されます。
Screenshot from 2020-06-13 10-40-25
私のシステムで完璧に動作しています:
Screenshot from 2020-06-13 10-42-01

これが私が実行しているコマンドです:
curl -X POST "192.168.43.11: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 \"、\ "-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 / notify \ "}"

bug question

最も参考になるコメント

バオバブに取り組んでいます。 ありがとうございました。

全てのコメント13件

@ Deepak-Encエラーが発生してケースを正常に再現し、エッジオーケストレーションを使用してコンテナを正常に起動しました。
以下は、正常に起動するために実行したコマンドです。

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. 私のXサーバーの設定は少し異なりますが、うまくいく場合は独自の設定を使用できます。 引用符に注意を払う主なこと。 あなたの例では、それらは正しくありません(これはタイプミスだと思います)。
  2. 発生したエラーは、コンテナを2回実行した結果です。 内部で動作するプログラムは、Webカメラにアクセスできないため、エラーが発生します。

    開始する前に、コマンドを使用する前に、そのようなコンテナーが開始されていないことを確認してください
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:~$ 

実行中のコンテナーを停止します。その後、エッジオーケストレーションの使用を開始できます。

あなたの結果は何ですか? 私はあなたのためにすべてがうまくいったことを願っています。 ご不明な点がございましたら、お気軽にお問い合わせください。

同じエラーを受け取ります。
Screenshot from 2020-06-15 15-09-29

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

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

container execution status : 1行はプログラム自体でエラーが発生したことを示しているため、 animeshj123/age_det_image:02コンテナ内のプログラムが正しく起動することを確認する必要があります。
изображение

私はそれをすることをお勧めします。 その後、すべてが正しく機能することがわかります。

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:~$ 

私もそのようなエラーを見ます。
изображение
dockerを再起動すると修正できます(service docker restart)

同じコンテナがあなたのエッジと私のローカルホストで正常に実行されています
プログラムに問題がないことを意味します。 私に問題があるかもしれません
この問題を解決する方法のエッジオーケストレーション。

2020年6月15日月曜日、16:25 tdrozdovsky、 notifications @ github.comは次のように書いています。

あなたはanimeshj123 / age_det_image :02のプログラムを確認する必要があります
コンテナの実行ステータス:1行として、コンテナは正しく起動します
プログラム自体にエラーが発生したことを示します。
[画像:изображение]
https://user-images.githubusercontent.com/45031429/84649763-bd171c00-af0f-11ea-9ff6-7ba80aea6662.png

私はそれをすることをお勧めします。 その後、すべてが正しく機能することがわかります。

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] virtual-pcのパスワード:

[情報]顔検出器モデルを読み込んでいます...

[情報]年齢検出器モデルを読み込んでいます...

[情報]ビデオストリームを開始しています...

^ CTraceback(最後の最後の呼び出し):

ファイル "detect_age_cam.py"、行121、

results = detect_and_predict_age(frame, faceNet, ageNet,

ファイル "detect_age_cam.py"、29行目、detect_and_predict_age

detections = faceNet.forward()

KeyboardInterrupt

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

コンテナIDイメージコマンドが作成したステータスポート名

f1a1dacb70fdエッジオーケストレーションestration:baobab "sh run.sh" 17時間前アップ17時間エッジオーケストレーション

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 / notify \ "}"

{"Message": "ERROR_NONE"、 "RemoteTargetInfo":{"ExecutionType": "container"、 "Target": "10.0.2.15"}、 "ServiceName": "age_detection"} virtual-pc @ virtualpc

virtual-pc @ virtualpc-VirtualBox :〜$

私もそのようなエラーを見ます。
[画像:изображение]
https://user-images.githubusercontent.com/45031429/84649385-1d598e00-af0f-11ea-9b6a-43a7780c7cf5.png
dockerを再起動すると修正できます(service docker restart)


あなたが言及されたのであなたはこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/lf-edge/edge-home-orchestration-go/issues/91#issuecomment-644056795
または購読を解除する
https://github.com/notifications/unsubscribe-auth/ANR2JO4EKLU3UYAYP4OSZB3RWX4ZPANCNFSM4N42UCTA

以下は、正しく機能しない場合の例です。

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'

今エラーコードを見てください

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

エラーは、エッジオーケストレータが返すものと同じです。

プログラムが正しく動作しない理由を探す必要があると思います(たとえば、 /dev/video0などにアクセスできない)

私の疑問を解消してください。 ホストマシンで正常に動作しているため、DockerコンテナまたはDockerファイルに問題はありません。 コンテナまたはDockerファイルで検出できないため、エッジオーケストレーションに問題がある可能性があります。

@ Deepak-Enc「エッジオーケストレーションの問題」とは何かについて詳しく説明してください。 私の理解では、ターゲットコンテナーは、Dockerコンテナー/ Dockerファイルを介してローカルホスト上で正常に実行されますが、エッジオーケストレーションで実行しようとすると失敗します。 いくつかの推奨事項をご案内しましたが、それでもこの問題を解決するかどうかは不明です。 私たちは正しいですか?
@ suresh-lcあなたの意見は何ですか? 単なる構成の問題ではないようです。

2020/06/16 04:27:56 containerexecutor.go:84:[containerexecutor]コンテナーの作成:c22c72a303
2020/06/16 04:28:01 containerexecutor.go:102:[containerexecutor]コンテナ実行ステータス:1
2020/06/16 04:28:01 containerexecutor.go:111:[containerexecutor]デーモンからのエラー応答:デッドまたは削除のマークが付けられたコンテナーからログを取得できません
2020/06/16 04:28:01 orchestration_api.go:340:[orchestrationapi]サービスステータスが変更されました[appNames:age_detection] [status:]
2020/06/16 04:28:01 containerexecutor.go:122:[containerexecutor]デーモンからのエラー応答:コンテナーc22c72a303bff50d18b4af5d5b7d644256cdd8fb2c7d2b08ccfa2ea225b3aa7fの削除はすでに進行中です

エッジオーケストレーションで年齢検出コンテナ(リアルタイムおよびビデオ)を実行しているときに、これらのエラーが発生します。 アプリケーションの最初のフレームをキャプチャしますが、その後、自動的にコンテナがデッドコンテナとしてマークされます。

@ Deepak-Enc:ログから、エラーのために最初のフレームを読み取った後、コンテナが削除のマークを付けられていることがわかりました。 しかし、まさに私たちも見つけようとしている理由です。 完全なエラーログファイルを共有できますか。 また、あなたが行ったステップのビデオを共有することができれば、それは大きな助けになるでしょう。

以下は、エッジオーケストレーションの下でコンテナがどのように機能するかを示すビデオです。

Ubuntu_v16_04 [実行中] -OracleVM VirtualBox 6_16_2020 9_30_15 AM.zip

送信したログは、コンテナ内のアプリケーションが正しく終了しなかったことを示しています。 より多くのデータが必要

@ Deepak-Enc:Baobabブランチを利用して、シナリオを試してみてください。
エッジオーケストレーションから開始されたサービスのコンテナホワイトリストが実行されていないようです。
err:= verifier.GetInstance()。ContainerIsInWhiteList(s.ParamStr [paramLen-1])。

したがって、一度バオバブブランチを試して、結果をお知らせください。

バオバブに取り組んでいます。 ありがとうございました。

問題は解決された。 @ suresh-lc @tdrozdovsky @ Deepak-Encすべての関心と情熱に感謝します!

このページは役に立ちましたか?
0 / 5 - 0 評価