Как из контейнера docker получить ip и порт, на котором хостится этот контейнер на хостинге?

Ссылка скопирована
1 ответ

пишу сайт-сократитель ссылок в качестве учебного проекта (впервые в жизни делаю сайт и уж тем более контейнеризирую что-то). Сайт принимает на вход данные и генерирует для них короткую ссылку, которая состоит из, собственно, генерируемой части и адреса сервера сайта. Я собрал образ для сайта, загрузил его на докер хаб и развернул сайт на хостинге. Всё заработало, но вылезла одна большая проблема: сайт берёт ip из окружения в контейнере, и поэтому он как бы виден, на него можно зайти и даже получить ссылку, но ссылка сгенерируется с помощью внутреннего ip контейнера, и поэтому она будет нерабочей. Как мне программно получить внешний ip и порт (их генерация зависит от хостинга), на которых хостится сайт? И если это неэффективный вариант, то какие есть альтернативы (я думал купить домен и сделать всё через него, но не уверен, что это сработает)?

Дополнительно:

Вся суть докера в том, чтобы контейнер был изолирован от хоста и не мог про него ничего узнать.

Ответы:

Правильный вариант - не завязываться ни на какие айпишники, особенно локальные. Нужен домен, да - но есть и бесплатные варианты, если покупать не хочется.

используй домен.
для теста можно заюзать sslip.io

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Сергей Миронов Ответ

Для того чтобы получить IP и порт контейнера Docker, на котором он хостится на хостинге, можно воспользоваться несколькими способами.

1. Используя команду docker inspect:

```php

docker inspect

docker inspect

```

Где - это ID вашего контейнера. В выводе этой команды вы найдете информацию о сетевых настройках контейнера, включая IP адрес и порты.

2. Используя команду docker port:

```php

docker port

docker port

```

Эта команда покажет вам все порты, которые проброшены из контейнера на хост, включая внешний порт и внутренний порт контейнера.

3. Используя команду docker network inspect:

```php

docker network inspect

docker network inspect

```

Если ваш контейнер находится в сети Docker, вы можете использовать эту команду для получения информации о сетевых настройках, включая IP адреса контейнеров.

4. Используя переменные окружения:

Если вы хостите контейнер на хостинге и у вас есть доступ к его настройкам, вы можете пробросить IP адрес и порт контейнера через переменные окружения. Например, вы можете установить переменные окружения в Dockerfile:

```php

ENV CONTAINER_IP 
ENV CONTAINER_PORT

ENV CONTAINER_IP ENV CONTAINER_PORT

```

Затем вы сможете получить доступ к этим переменным из контейнера.

Надеюсь, эти способы помогут вам получить IP и порт контейнера Docker на хостинге. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно