Python 3.x Docker使用python文件中的服务名称编写access容器?

Python 3.x Docker使用python文件中的服务名称编写access容器?,python-3.x,django-rest-framework,docker-compose,Python 3.x,Django Rest Framework,Docker Compose,我有一个两个容器,以及如何使用django web服务器访问python文件中的另一个容器 Docker-compose.yml文件 Python文件: 我可以从表单中获取邮件字符串 mail = request.POST.get('mail_string', '') url = 'http://con_api:8000/api/'+mail+'/?format=json' resp = requests.get(url=url) return Htt

我有一个两个容器,以及如何使用django web服务器访问python文件中的另一个容器

Docker-compose.yml文件 Python文件: 我可以从表单中获取邮件字符串

   mail = request.POST.get('mail_string', '') 
   url = 'http://con_api:8000/api/'+mail+'/?format=json'
   resp = requests.get(url=url)         
   return HttpResponse(resp.text)

我请求api容器并获取值,但我不知道ip地址

更新的答案

在python文件中,您可以使用
url=http://api/“+mail+”/?格式=json”
。这将使您能够访问您试图从中获取请求的url

原始答案

如果这两个容器是独立的,那么您可以创建一个,当您使这两个容器成为同一网络的一部分时,您可以使用它们的主机名来访问它们,您可以通过指定主机名来访问它们


另一种简单的方法是使用docker compose文件,默认情况下,该文件创建一个网络,文件中声明的所有服务都是该网络的一部分。这样,您就可以通过服务名称访问其他服务。就像docker compose文件如下所示:

version: '3'
services:

  container1:
    image: some_image

  container2:
    image: another_or_same_image
现在通过以下方式进入container2:

docker exec-it container2/bin/bash

然后运行
pinghttp://contianer1


您将收到数据包,因此可以访问其他容器。

是的,这很好!但是我不知道这是一个状态更新还是一个问题?我可以在python文件中这样做,但我不能在python文件中这样做。我给出的答案是完整的,您将获得一个可以在python文件中使用的URL。如果您不熟悉docker compose和使用docker run运行容器,那么我已经给出了另一个仅使用容器的答案。您能给我举个例子吗?我尝试用python文件中的服务获取ip地址,但打印服务名称更新问题并包括您的尝试方式,如果我知道您想要做什么,我将能够更好地帮助您。包括您如何运行容器,还包括您用python编写的访问其他容器的内容?
version: '3'
services:

  container1:
    image: some_image

  container2:
    image: another_or_same_image