我刚刚开始学习docker并被卡在这里。因此,首先,我尝试运行Jenkins图像并映射一个端口,以便可以从浏览器访问它,但我没有成功。当我在指定端口的浏览器中打开Localhost时,我什么也没得到。tomcat也是如此。
我像这样运行它:docker run -it --rm -p 8888:8080 tomcat
,并且在CMD提示符中获得输出,就像所有设置一样,但浏览器中没有任何内容。在docker ps
中,我可以看到tomcat容器正在端口8888上运行。
以下是您可以遵循的几个步骤以追踪问题:
检查服务是否在容器中正确运行
您可以使用:
docker exec -it [container id] bash [or ash depends on your image]
,然后检查容器是否正在运行所需的服务,可以在此处有用。
或者您可以检查容器日志。只需在主机上运行:
docker logs [container id]
检查Docker是否正确绑定您的端口
在主机上运行:
sudo netstat -nlp | grep :8888
这应该列出 Dockerd 'Docker Daemon'正在使用端口
,如果所有这些都进行得很好,那么您应该检查防火墙规则,因为它可能会阻止这些端口上的任何连接
P.S。 --rm
选项意味着Docker将自动清理容器并在容器退出时删除文件系统。因此,没有任何持久性。
希望这很有用。
问题是我检查了错误的IP。在Localhost上,我无法访问Docker容器中运行的任何内容,但是当我尝试每次Docker启动时在CMD提示中提供的地址时,我都会得到我想要的。