Сценарий Python в Docker должен получить доступ к данным API, представленным в другом образе Docker - PullRequest
0 голосов
/ 05 февраля 2019

Я новичок в Docker и пытаюсь выяснить следующее:

Мне нужно получить доступ к данным API, запустив образ Docker docker run -dit -p 5000:5000 abc/xyz:v1.0.0

Я создал приложение Python, которое может получить доступ кэти данные.Я создал файл Docker для приложения Python тоже.Я пытаюсь запустить образ докера API при создании докера приложения Python.(Я уверен, что это не правильный путь).Скажите, пожалуйста, как подойти к этой ситуации.

Я хочу, чтобы 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"]```



1 Ответ

0 голосов
/ 05 февраля 2019

С помощью опции -p 5000:5000 вы можете связать свой докер с вашим хостом, но если вы хотите связать два докера на одном хосте, вам нужно определить для них сеть докеров.

Самый простой способдля этого запускается докер с параметрами --net=host.Эта сеть позволяет вашему докеру использовать хост-интерфейсы, включая localhost.

РЕДАКТИРОВАТЬ: Добавление дополнительной информации

  1. Создание образа докера (я рекомендую без строк ENTRYPOINT, копированиеВаш двоичный файл в каталог, который относится к пути.
  2. Просто добавьте net = host в команду запуска docker, непосредственно перед созданием образа с помощью сборки docker: docker run -dit --net=host -p 5000:5000 abc/xyz:v1.0.0 python3 <your_entry_point_path>
  3. Добавьте --net=host вдругие докеры, которые вы запускаете.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...