#docker #docker-compose #dockerfile
#docker #докер-составить #докерфайл
Вопрос:
Я создаю образ Docker с помощью сборки dockerfile, где моим базовым изображением является Tomcat 8.0: jre8. Теперь в dockerfile я хочу указать пользовательский порт вместо 8080 и предоставить пользовательский порт вне контейнера docker.
Кто-нибудь может подсказать мне, как это можно сделать?
Ответ №1:
Порт, используемый внутри контейнера, не имеет ничего общего с docker. Это настроено в файлах конфигурации Tomcat.
Вы можете сопоставить порт, используемый внутри, с портом на хосте с помощью --publish
(или -p
для краткости) опции docker run
команды при запуске контейнера.
docker run --publish=hostport:containerport ...
Комментарии:
1.
FROM tomcat:8.0-jre8 #install npm and bower RUN echo "Installing NPM" RUN apt-get update RUN apt-get -y install nodejs RUN apt-get -y install npm RUN echo "Installing Bower" RUN npm -g install bower RUN ln -s /usr/bin/nodejs /usr/bin/node #install git RUN apt-get -y install git
Я создаю свой dockerfile следующим образом, в котором вместе с tomcat устанавливаю npm, bower, git и мои пользовательские библиотеки js. Как здесь указать порт хоста, поскольку я не запускаю docker, я просто хочу использовать созданный образ?2. Порт, который прослушивает tomcat, настроен в
conf/server.xml
файле. Смотрите документацию tomcat для получения подробной информации. Тем не менее, я не понимаю, зачем вам нужно его менять (он может быть сопоставлен с любым портом хоста). Также, что вы имеете в виду, говоря «я не запускаю docker»? Вы должны создать контейнер на основе изображения, чтобы запустить его.