Как использовать один порт для 3-х контейнеров вместо 3-х портов Python-Flask, PostgreSQL & Angular8? так что я могу использовать Docker Run вместо Docker Compose - PullRequest
0 голосов
/ 09 октября 2019

Я создал три контейнера, один для приложения Python Flask, второй для PostgreSQL db и третий для angular8. Я использую Docker compose для запуска этого. мой вопрос, так что каждый контейнер имеет порты, так что всего 3 порта. Есть ли способ, которым я могу использовать только один порт для запуска всего этого приложения, например Docker Run вместо Docker Compose? Все, что мне нужно, - это один порт, где этот API можно вызывать из любого места.

1 Ответ

0 голосов
/ 09 октября 2019

Если единственное, что вы хотите видеть "снаружи" - это API, вы можете использовать флаг --link при вызове docker run. По сути, запустите контейнер PG, затем запустите контейнер Flask, связывая его с PG, затем запустите контейнер Angular, связанный с Flask. Однако флаг --link является устаревшей функцией и может исчезнуть в будущем.

Другой вариант - создать сеть с docker network create и убедиться, что все три контейнера используют одну и ту же сеть. Все они должны иметь возможность общаться друг с другом таким образом, и вам просто нужно опубликовать порт API, чтобы другие приложения могли использовать ваш API.

Я не уверен, каковы ваши требования, но docker-compose - это, как правило, более чистый способ сделать это, поскольку он помогает вам достичь согласованности в вашей автоматизации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...