我正在尝试创建一个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端口。所以我不太清楚是怎么回事?
答案 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