gpt4 book ai didi

python-3.x - Docker 中的 python 脚本需要访问不同 Docker 镜像中存在的 API 数据

转载 作者:行者123 更新时间:2023-12-02 18:36:52 24 4
gpt4 key购买 nike

我是 docker 新手,并试图弄清楚以下内容:

我需要通过运行 docker image docker run -dit -p 5000:5000 abc/xyz:v1.0.0 来访问 API 数据

我创建了一个可以访问这些数据的 python 应用程序。
我也为 python 应用程序创建了 docker 文件。我正在尝试在构建 python 应用程序 docker 时运行 API docker 镜像。 (我确信这不是正确的方法)。请告诉我如何处理这种情况。

我要docker run -i my-python-app以某种方式访问​​ docker run -dit -p 5000:5000 abc/xyz:v1.0.0
这是我的 Docker 文件的样子:


COPY variants /usr/local/variants
COPY requirements /usr/local/requirements
COPY tests /usr/local/tests

RUN apk add -U python3 g++ docker \
&& python3 -m ensurepip \
&& rm -r /usr/lib/python*/ensurepip \
&& pip3 install --upgrade pip \
&& pip install --upgrade setuptools \
&& pip3 install -r /usr/local/requirements/common.txt

ENTRYPOINT docker run --privileged -dit -p 5000:5000 abc/xyz:v1.0.0

ENTRYPOINT ["python3", "-m", "usr.local.variants.main"]```



最佳答案

与您的-p 5000:5000选项您可以与您的主机通信您的 docker,但如果您想在同一主机上通信两个 docker,您需要为它们定义一个 docker 网络。

最简单的方法是使用 --net=host 启动 docker。选项。该网络允许您的 docker 使用主机接口(interface),包括 localhost。

编辑:添加更多信息

  • 创建 docker 镜像(我建议不要使用 ENTRYPOINT 行,将二进制文件复制到属于该路径的目录。
  • 只需将 net=host 添加到您的 docker run 命令中,就在使用 docker build 创建镜像之前:docker run -dit --net=host -p 5000:5000 abc/xyz:v1.0.0 python3 <your_entry_point_path>
  • 添加 --net=host到您启动的其他 docker 。
  • 关于python-3.x - Docker 中的 python 脚本需要访问不同 Docker 镜像中存在的 API 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54530584/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com