如何从主机(Windows计算机)连接到Docker容器

时间:2020-09-10 14:15:05

标签: docker dockerfile docker-machine

我确实是Docker的新手。我有一个Java应用程序,可以通过使用javaws命令执行,如下所示。 j 可用http:// localhost:9088 / rtccClient / rtcc.jnlp。 我已使用“ ibmcom / websphere-liberty:latest”作为基础映像在窗口的计算机中为此应用程序创建了docker容器。启动容器后,我正在执行相同的命令来运行应用程序,并显示“ CouldNotLoadArgumentException [无法加载指定的文件/ URL:http:// localhost:9088 / rtccClient / rtcc.jnlp]”。 以下是我的docker文件。请更新我在做什么错了。

**FROM ibmcom/websphere-liberty:latest
USER root
ADD ./rtcc.ear /opt/ibm/wlp/usr/servers/defaultServer/apps
ADD ./rtccClient.war /opt/ibm/wlp/usr/servers/defaultServer/apps
RUN yum -y install unixODBC
RUN yum -y install libaio
RUN mkdir -pv /basic
COPY ./basicinstaclient/oracle-instantclient19.8-basic-19.8.0.0.0-   1.x86_64.rpm /basic/
RUN rpm -i /basic/oracle-instantclient19.8-basic-19.8.0.0.0-1.x86_64.rpm
EXPOSE 9088
EXPOSE 9450**

当我检查docker容器ID时,ip显示为“ 172.18.0.3”,并且该容器的端口为9080。在我在javaws命令中提到的jnlp文件中,我应该使用ip和port。我需要把IP和容器的端口放吗? 因此我使用了“ javaws http://172.18.0.3:9080/rtccClient/rtcc.jnlp"。仍然无法正常工作。我什至用我的Windows计算机IP替换了它。我什至登录了容器来执行javaws命令。它说找不到javaws。请帮助

2 个答案:

答案 0 :(得分:0)

尝试这样的命令:

docker run -p 9080:9080 YOUR_IMAGE_NAME_HERE

然后再次尝试javaws http://localhost:9088/rtccClient/rtcc.jnlp

-p将这样映射端口:host:docker从左到右将主机端口映射到docker内部端口。

在这里您还可以从头开始找到一个不错的docker工场(无耻的插件):https://docker-from-scratch.ivonet.nl/

答案 1 :(得分:0)

我按照您的尝试进行了尝试,这就是我正在得到的。 CouldNotLoadArgumentException [无法加载指定的文件/ URL:http:// localhost:9088 / rtccClient / rtcc.jnlp]

更多信息,您正在运行命令中映射9080:9080并在javaws命令中使用9088。那么它将如何工作?