将Docker容器端口转发到localhost

时间:2019-07-26 18:13:20

标签: java docker solr

我正在尝试创建一个docker容器,以便可以连接到localhost:8180。但是,无论何时我执行以下命令并尝试进入本地主机,我都不会得到任何结果

docker run -it -p 8180:8180 solrtest bash

我的dockerfile是以下

FROM centos:7
COPY src/ /home/src/
RUN yum install -y \
   java-1.8.0-openjdk \
   java-1.8.0-openjdk-devel

ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk/

RUN cd /home/src
RUN java -jar /home/src/app-solr-5-installer.jar -d "/home/app-solr"
RUN /home/app-solr/bin/app-solr start
EXPOSE 8180

应用程序本身已启动,因此没有问题,我公开了8180端口。所以我不太清楚是怎么回事?

1 个答案:

答案 0 :(得分:1)

您需要通过以下方式更改Dockefile:

FROM centos:7
COPY src/ /home/src/
RUN yum install -y \
   java-1.8.0-openjdk \
   java-1.8.0-openjdk-devel

ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk/

RUN cd /home/src
RUN java -jar /home/src/app-solr-5-installer.jar -d "/home/app-solr"

EXPOSE 8180

CMD /home/app-solr/bin/app-solr start

构建后,您可以运行它:

docker run -d -p 8180:8180 solrtest

在这种情况下,您不应使用-it bash选项,因为这意味着分配tty并附加到bash。它不会运行您的应用程序:

-t              : Allocate a pseudo-tty
-i              : Keep STDIN open even if not attached

此处有更多信息:https://docs.docker.com/engine/reference/run/