У меня есть хост FAST API в контейнере докеров. Рабочий процесс этого API будет публиковать данные в другие API, которые «размещаются на другом сервере». И теперь FAST API может вызываться другой программой. Но он получит ошибку «Нет адреса, связанного с именем хоста», когда вызовет другой API, я думаю, что, возможно, что-то не так в файле докеров. Ниже приведены схема и файл докер-файла.
Докерфайл
FROM python:3.9
WORKDIR /code
COPY ./requirements.txt /code/requirements.txt
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
COPY ./app /code/app
WORKDIR /code/app
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
Потому что я запускаю свой докер с помощью Docker Desktop, установленного в ОС Windows. И я заметил, что в Windows нет файла /etc/resolv.conf. Так что, возможно, он не будет автоматически унаследовать настройки DNS хоста. И IP-адрес DNS-сервера отличается между Windows и Linux в нашей компании.
Поэтому я решил эту проблему двумя способами.
Разместите Docker на Linux-машине, не устанавливая DNS-IP.
Измените ip DNS-сервера.