質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

2234閲覧

Dockerコンテナのサーバーへのcurlコマンドでエラー

tkym_1231

総合スコア57

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2022/08/25 06:37

編集2022/08/25 08:08

前提

WSL2のDockerコンテナ内にPytorchモデルをAPI化するtorchserveをインストールして動作させています。
以下のページを参考に、jpgファイルをtorchserveに送って結果を得るというサンプルを動かそうとしています。
https://qiita.com/tamitarai/items/ef7e785483ad4699a424

実現したいこと

以下のページに記載されているように、curlコマンドを実行した際にモデル一覧を受け取りたいです。
https://qiita.com/tamitarai/items/ef7e785483ad4699a424#%E3%83%A2%E3%83%87%E3%83%AB%E7%AE%A1%E7%90%86api%E3%81%B8%E3%81%AE%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88

curl http://127.0.0.1:8081/models

期待する結果

{ "models": [ { "modelName": "densenet161", "modelUrl": "densenet161.mar" } ] }

発生している問題・エラーメッセージ

以下のようなメッセージが返ってきます。

<HTML> <HEAD><TITLE>Redirection</TITLE></HEAD> <BODY><H1>Redirect</H1></BODY>

試したこと

Torchserveのコンテナから以下のコマンドを実行しました。

curl 127.0.0.1:8081/models

指定しているIPアドレスが良くないのかと思い、DockerコンテナのIPアドレス(172.17.0.5)で試しましたが、

curl 172.17.0.5:8081/models
curl: (52) Empty reply from server

というメッセージが返ってきました。
Dockerコンテナをrunさせる際に、以下のようにポートフォワーディングして、ホストからホストのIPアドレスに対してcurlコマンドを実行しましたが、結果は同じでした。

docker run -it --gpus all -v /home:/home -p 8080:8080 -p 8081:8081 -p 8082:8082 --shm-size 8GB ts_test
curl http://172.19.108.214:8081/models

-Lオプションを付けた場合は、以下のような結果で、エラーが返ってきました

root@f0b48fd29ec1:~# curl -L http://127.0.0.1:8081/models curl: (52) Empty reply from server

-vオプションを付けた場合は、以下のような結果が返ってきました。

root@f0b48fd29ec1:~# curl -v http://127.0.0.1:8081/models * Trying 10.77.8.70... * TCP_NODELAY set * Connected to proxy.mei.co.jp (10.77.8.70) port 8080 (#0) > GET http://127.0.0.1:8081/models HTTP/1.1 > Host: 127.0.0.1:8081 > User-Agent: curl/7.58.0 > Accept: */* > Proxy-Connection: Keep-Alive > < HTTP/1.1 301 Moved Permanently < Server: BlueCoat-Security-Appliance < Location:http://10.75.28.231 < Connection: Close < <HTML> <HEAD><TITLE>Redirection</TITLE></HEAD> <BODY><H1>Redirect</H1></BODY> * Closing connection 0

curlで結果が返ってこない原因としてどのようなことが考えれるでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2022/08/25 07:59

curl に -L オプションをつけてリダイレクトに従うとか、-v オプションでレスポンスヘッダーを表示してみるとか…。
tkym_1231

2022/08/25 08:07

アドバイスをありがとうございます。 -Lオプションを付けた場合は、以下のような結果で、エラーが返ってきました ``` root@f0b48fd29ec1:~# curl -L http://127.0.0.1:8081/models curl: (52) Empty reply from server ``` -vオプションを付けた場合は、以下のような結果が返ってきました。 ``` root@f0b48fd29ec1:~# curl -v http://127.0.0.1:8081/models * Trying 10.77.8.70... * TCP_NODELAY set * Connected to proxy.mei.co.jp (10.77.8.70) port 8080 (#0) > GET http://127.0.0.1:8081/models HTTP/1.1 > Host: 127.0.0.1:8081 > User-Agent: curl/7.58.0 > Accept: */* > Proxy-Connection: Keep-Alive > < HTTP/1.1 301 Moved Permanently < Server: BlueCoat-Security-Appliance < Location:http://10.75.28.231 < Connection: Close < <HTML> <HEAD><TITLE>Redirection</TITLE></HEAD> <BODY><H1>Redirect</H1></BODY> * Closing connection 0 ```
guest

回答1

0

自己解決

以下のコマンドで期待する結果が得られました。
プロキシが影響していたようです。

root@f0b48fd29ec1:~/torchserve-sample# curl http://127.0.0.1:8081/models --noproxy "*" { "models": [ { "modelName": "densenet161", "modelUrl": "densenet161.mar" } ] }

投稿2022/08/25 08:52

tkym_1231

総合スコア57

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問