docker - “目标机主动拒绝”对 tensorflow 服务 Docker 容器的 POST 请求
问题描述
编辑:我需要将与容器配对的 DOCKER 虚拟机端口转发到我的本地机器的相同端口。
我正在尝试使用 REST API 从本地托管在 docker 工具箱容器上的模型的 tensorflow 服务中获得响应,并且收到任何尝试从我的主机连接到它的错误。我已经用尽了所有我能想到的尝试或搜索来解决我的问题。
我尝试连接 localhost:8501 和 192.168.99.101:8501 中的 docker IP 和 117.17.0.2:8501 容器的 IP,但均未成功。
这是与我的问题有关的更多详细信息的 imgur 专辑,以获取更多上下文,包括 docker 机器详细信息、容器详细信息、我尝试的 POST 和 GET 请求、VirtualBox 统计信息和容器日志:https://imgur。 com/a/hORpGYd
在所有这些尝试中,我还尝试禁用我的防火墙。
我可以成功 ping 192.168.99.101 但不能 192.168.99.101:2376 也不能 192.168.99.101:8501。
当我进入 Docker 容器并运行 tensorflow_model_server 命令时,出现另一个错误,该错误位于 imgur 库的开头。
我的主机操作系统是 Windows 10 家庭版。
我真的不确定这个问题是否是虚拟盒子不应该拒绝连接的网络问题,或者它是否可能是 tensorflow 服务方面的问题。
提前感谢您的帮助!
Traceback (most recent call last):
File "C:\Users\Charles\Anaconda3\lib\site-packages\urllib3\connection.py", line 171, in _new_conn
(self._dns_host, self.port), self.timeout, **extra_kw)
File "C:\Users\Charles\Anaconda3\lib\site-packages\urllib3\util\connection.py", line 79, in create_connection
raise err
File "C:\Users\Charles\Anaconda3\lib\site-packages\urllib3\util\connection.py", line 69, in create_connection
sock.connect(sa)
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Charles\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 600, in urlopen
chunked=chunked)
File "C:\Users\Charles\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 354, in _make_request
conn.request(method, url, **httplib_request_kw)
File "C:\Users\Charles\Anaconda3\lib\http\client.py", line 1239, in request
self._send_request(method, url, body, headers, encode_chunked)
File "C:\Users\Charles\Anaconda3\lib\http\client.py", line 1285, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "C:\Users\Charles\Anaconda3\lib\http\client.py", line 1234, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "C:\Users\Charles\Anaconda3\lib\http\client.py", line 1026, in _send_output
self.send(msg)
File "C:\Users\Charles\Anaconda3\lib\http\client.py", line 964, in send
self.connect()
File "C:\Users\Charles\Anaconda3\lib\site-packages\urllib3\connection.py", line 196, in connect
conn = self._new_conn()
File "C:\Users\Charles\Anaconda3\lib\site-packages\urllib3\connection.py", line 180, in _new_conn
self, "Failed to establish a new connection: %s" % e)
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x000002902F3DECC0>: Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Charles\Anaconda3\lib\site-packages\requests\adapters.py", line 445, in send
timeout=timeout
File "C:\Users\Charles\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 638, in urlopen
_stacktrace=sys.exc_info()[2])
File "C:\Users\Charles\Anaconda3\lib\site-packages\urllib3\util\retry.py", line 398, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8501): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000002902F3DECC0>: Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it',))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/Charles/PycharmProjects/spamreader/test4.py", line 3, in <module>
out = requests.get("http://localhost:8501")
File "C:\Users\Charles\Anaconda3\lib\site-packages\requests\api.py", line 72, in get
return request('get', url, params=params, **kwargs)
File "C:\Users\Charles\Anaconda3\lib\site-packages\requests\api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Users\Charles\Anaconda3\lib\site-packages\requests\sessions.py", line 512, in request
resp = self.send(prep, **send_kwargs)
File "C:\Users\Charles\Anaconda3\lib\site-packages\requests\sessions.py", line 622, in send
r = adapter.send(request, **kwargs)
File "C:\Users\Charles\Anaconda3\lib\site-packages\requests\adapters.py", line 513, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8501): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000002902F3DECC0>: Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it',))
泊坞窗中的错误消息:
> --model_name=prod_mod --model_base_path=/models/prod_mod
2019-01-22 05:21:16.214490: I tensorflow_serving/model_servers/server.cc:82] Building single TensorFlow model file config: model_name: prod_mod model_base_path: /models/prod_mod
2019-01-22 05:21:16.215026: I tensorflow_serving/model_servers/server_core.cc:461] Adding/updating models.
2019-01-22 05:21:16.215231: I tensorflow_serving/model_servers/server_core.cc:558] (Re-)adding model: prod_mod
2019-01-22 05:21:16.334858: I tensorflow_serving/core/basic_manager.cc:739] Successfully reserved resources to load servable {name: prod_mod version: 1}
2019-01-22 05:21:16.335783: I tensorflow_serving/core/loader_harness.cc:66] Approving load for servable version {name: prod_mod version: 1}
2019-01-22 05:21:16.336508: I tensorflow_serving/core/loader_harness.cc:74] Loading servable version {name: prod_mod version: 1}
2019-01-22 05:21:16.337655: I external/org_tensorflow/tensorflow/contrib/session_bundle/bundle_shim.cc:363] Attempting to load native SavedModelBundle in bundle-shim from: /models/prod_mod/1
2019-01-22 05:21:16.338101: I external/org_tensorflow/tensorflow/cc/saved_model/reader.cc:31] Reading SavedModel from: /models/prod_mod/1
2019-01-22 05:21:16.355285: I external/org_tensorflow/tensorflow/cc/saved_model/reader.cc:54] Reading meta graph with tags { serve }
2019-01-22 05:21:16.367139: I external/org_tensorflow/tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
2019-01-22 05:21:16.405369: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:162] Restoring SavedModel bundle.
2019-01-22 05:21:16.550336: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:138] Running MainOp with key saved_model_main_op on SavedModel bundle.
2019-01-22 05:21:16.571837: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:259] SavedModel load for tags { serve }; Status: success. Took 233732 microseconds.
2019-01-22 05:21:16.572396: I tensorflow_serving/servables/tensorflow/saved_model_warmup.cc:83] No warmup data file found at /models/prod_mod/1/assets.extra/tf_serving_warmup_requests
2019-01-22 05:21:16.578072: I tensorflow_serving/core/loader_harness.cc:86] Successfully loaded servable version {name: prod_mod version: 1}
2019-01-22 05:21:16.579211: I tensorflow_serving/model_servers/server.cc:286] Running gRPC ModelServer at 0.0.0.0:8500 ...
[warn] getaddrinfo: address family for nodename not supported
[evhttp_server.cc : 222] RAW: Couldn't bind to port 8501
Aborted (core dumped)
root@dce94d95c992:/#
解决方案
这主要是因为您尝试连接的服务器没有运行。我在尝试使用 mongo 制作烧瓶应用程序时遇到了完全相同的错误。我得到了两次,因为我的 mongo 服务器没有运行,我试图连接到它,下一次我试图连接到另一个没有运行的服务器。所以请检查您的服务器。
如果主机或端口错误,也会发生这种情况。
如果您找到不同的解决方案,请告诉。
推荐阅读
- python - 创建一个零的 3D 张量,在 numpy/jax 中的每个切片上随机放置一个“1”
- c# - 如何动态创建表达式
> 带有字符串参数的谓词? - java - 如果将旧日期与当前日期一起传递,则 Date before 方法返回 false
- keypress - 字符转换
- javascript - 从数组映射 wordpress 帖子
- javascript - 计算表格中复选框的数量和数量
- c# - Json数据检索
- apache - 使用 .htaccess 始终重定向到 index.php 时出现 500 内部服务器错误
- python - 使用 Selenium 通过自定义按钮属性查找元素
- sql - Access SQL 查询:仅显示重复记录的最新记录