我漏掉了一小块拼图。运行一个坞映像(例如在Linux EC2实例上)
> sudo docker run -p 80:xyzw webapp_image:version使容器可以在80端口到达,这意味着(通过EXPOSE xyzw在Dockerfile中)容器已经影响到了它的主机。
这不违反码头集装箱的前提吗?这个想法,就像虚拟化一样,似乎是一个容器在沙箱中运行,不能影响它的主机。然而,在这里,它能够在主机的端口上暴露自己。事实是,这是可行的,而不是打破了假定的孤立?映射不应该在主机的命令行上执行,而不是从容器中执行吗?假设同一主机上有两个容器,两个容器都试图通过同一个端口公开,那么,可能会发生一些竞争,看谁先到达那里。或者,除了这里映射发生在主机的命令行之外,沙箱是否确实被观察到了呢?
发布于 2018-08-16 12:34:52
如何将EC2实例的端口80路由到容器的端口80?
如果我理解上下文,你可以在命令下运行-
$ sudo docker run -p 80:80 webapp_image:version
这将主机的端口80路由到容器的端口80。
在此之后,您需要在EC2实例的安全组中打开端口80 &如果它仍然不能工作,请遵循检查点-
发布于 2018-08-16 13:54:44
您在您的Docker文件中添加了这一行EXPOSE 80吗?如果是,那么运行docker run -p 80:80 webapp_image:version。-p 80:80选项将容器上公开的端口80映射到主机上的端口80 (EC2)。
https://stackoverflow.com/questions/51877069
复制相似问题