当我在docker上以独立模式运行Milvus时(通过在默认的Milvus Compose.yml文件上执行docker-compose.yml文件,导致创建了三个容器),我无法从同一主机上运行在另一个码头容器中的任务连接到Milvus服务器。我已经将这个容器配置为与Milvus服务器位于同一个网络上,并且我可以通过Milvus服务器的IP从这个容器中ping Milvus服务器。
在任务容器中运行:
connections.connect(
alias="default",
host='192.168.192.4',
port='19530',
secure=False
)错误日志显示:
Traceback (most recent call last):
File "task.py", line 45, in
secure=True
File "/usr/local/lib/python3.7/site-packages/pymilvus/orm/connections.py", line 262, in connect
connect_milvus(**kwargs, password=password)
File "/usr/local/lib/python3.7/site-packages/pymilvus/orm/connections.py", line 233, in connect_milvus
gh._wait_for_channel_ready()
File "/usr/local/lib/python3.7/site-packages/pymilvus/client/grpc_handler.py", line 118, in _wait_for_channel_ready
raise MilvusException(Status.CONNECT_FAILED, f'Fail connecting to server on {self._address}. Timeout')
pymilvus.exceptions.MilvusException: <MilvusException: (code=2, message=Fail connecting to server on 192.168.192.4:19530. Timeout)>192.168.192.4是milvus-独立集装箱的ip地址.
发布于 2022-11-22 11:46:53
结果发现这不是Milvus的问题。这一问题是由我们的企业网络和代理需求造成的。在dockerfile中,我需要设置代理设置,以便能够提取图像。但是,这将在builld期间和容器中设置代理设置。这些代理设置阻止了容器之间的通信。代理设置需要在dockerfile中重置。修复程序如下:
FROM python:3.9.12
ENV https_proxy <proxy settings>
COPY requirements.txt /
RUN pip3 install --proxy <proxy settings> -r requirements.txt
COPY task.py /
ENV https_proxy ""
CMD ["python3", "-u", "task.py"]https://stackoverflow.com/questions/74520985
复制相似问题