我正在虚拟Ubuntu机器内的AWS EC2实例的Docker容器中运行docker映像,并尝试通过虚拟Ubuntu机器对其进行访问。我知道通常会在网络浏览器中使用它们的公共DNS查看运行中的映像,但是我是通过我的私有IP(不是我的公共DNS)登录到EC2实例的。因此,我无法通过公共DNS查看运行的图像。
我已经尝试了我的私有IP,我的私有IP:8080(因为docker ps在此图像上显示8080 / tcp)以及我在浏览器中的公共IP和DNS。专用DNS是答案吗?如果是这样,我将如何使其成为有效的URL?
如果我没有提供足够的信息,请告诉我,我一定会提供。谢谢您的帮助。
答案 0 :(得分:1)
我认为您在混淆图像,容器等术语,这可能有点混淆–也许您应该仔细阅读(https://docs.docker.com/get-started/)。
映像是一个可执行程序包,其中包含运行应用程序所需的所有内容,包括代码,运行时,库,环境变量和配置文件。
容器是映像的运行时实例-映像在执行时将变为内存中的内容(即具有状态或用户进程的映像)。
如果要从运行它们的Docker主机访问容器,您是否尝试过localhost
?
像这样:
curl http://localhost:8080/
如果仅显示8080/tcp
,则最有可能意味着您首先需要通过将-p
标志添加到docker run命令(https://docs.docker.com/config/containers/container-networking/)来发布端口:
docker run -p 8080:8080 ... image-name