Как пробросить имя хоста в Docker?

В Node.js, при разработке приложений, возникает необходимость пробросить имя хоста в контейнер Docker для взаимодействия с внешними сервисами. Это может понадобиться, например, при взаимодействии с базой данных или веб-сервером, которые запущены вне контейнера.

Пробросить имя хоста в Docker можно несколькими способами. Рассмотрим два наиболее распространенных подхода.

1. Через аргументы командной строки:
При запуске контейнера Docker можно указать аргументы командной строки, которые будут переданы внутрь контейнера. Один из таких аргументов может быть имя хоста, которое будет использоваться в приложении Node.js.

Пример запуска контейнера с передачей имени хоста через аргументы командной строки:

docker run -e HOST_NAME=myhost myapp

Внутри контейнера можно получить значение аргумента с помощью объекта process.env:

const hostName = process.env.HOST_NAME;
console.log(`Host name: ${hostName}`);

После запуска контейнера с указанным аргументом HOST_NAME, приложение Node.js сможет использовать это значение для взаимодействия с внешними сервисами.

2. Через переменную окружения:
Другим распространенным способом проброса имени хоста в Docker является использование переменной окружения. При запуске контейнера можно задать значение переменной окружения с помощью опции -e или --env:

docker run -e HOST_NAME=myhost myapp

Внутри контейнера можно получить значение переменной окружения с помощью объекта process.env:

const hostName = process.env.HOST_NAME;
console.log(`Host name: ${hostName}`);

Оба описанных способа позволяют передать значение имени хоста в контейнер Docker для использования в Node.js приложении. В зависимости от вашего удобства, вы можете выбрать один из этих подходов или использовать другие методы, предлагаемые Docker, такие как монтирование файлов или сетевые алиасы.