Как я могу запустить свой образ с указанным портом? - PullRequest
0 голосов
/ 09 апреля 2020

Я создал docker образ приложения node js 12, используя следующий файл docker. Как я могу запустить свой образ с указанным портом? Как я могу сделать сопоставление портов? Я хочу использовать порт, который я упомянул выше.

Docker файл, как указано ниже:

FROM node:12

WORKDIR /app

COPY ./package*.json ./
RUN npm ci --production

COPY ./ ./

ENV PORT 5000
ENV HOST_URL localhost:$PORT
EXPOSE $PORT

CMD [ "npm", "run", "start" ]

Я использовал эти порт и хост в своем приложении node js 12:

export PORT=5000
export HOST_URL=https://hellosigntest.xxx

Я построил изображение, приведенное ниже:

docker build -t hellosigndemo:1.0 .

1 Ответ

0 голосов
/ 09 апреля 2020

Когда вы запускаете образ, вы можете указать хост-порты, на которых он будет доступен, используя параметр docker run -p или Docker Compose ports: параметр . Порт хоста не должен совпадать с портом контейнера. Каждый контейнер имеет свое собственное пространство имен сети, поэтому все контейнеры могут обслуживать один и тот же порт без конфликтов.

Это означает, что типичная настройка здесь заключается в выборе фиксированного номера порта в вашем файле Docker:

# The default port for Express applications
EXPOSE 3000
CMD ["npm", "run", "start"]

Но когда вы запускаете контейнер, вы можете выбрать другой порт на хосте:

# Map host port 5000 to container port 3000
docker run -p 5000:3000 hellosigndemo:1.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...