amazon-web-services - Docker 的 EXPOSE 不会破坏所谓的沙箱吗?

标签 amazon-web-services http docker amazon-ec2

我错过了一 block 拼图。通过

运行 docker 镜像(比如在 Linux EC2 实例上)
> sudo docker run -p 80:xyzw webapp_image:version

使 容器 可在端口 80 访问,这意味着(通过 Dockerfile 中的 EXPOSE xyzw)容器已影响其主机。

这与 Docker 容器的前提不矛盾吗?这个想法,就像虚拟化一样,似乎是容器在沙箱中运行并且无法影响其主机。然而在这里它能够在主机的端口上暴露自己。这是可行的事实是否不会违反假定的隔离?映射不应该在主机的命令行上完成,而不是在容器内完成吗?假设您在同一台主机上有两个容器,并且都尝试通过同一个端口公开,那么可能会发生一些竞赛,看谁先到达那里。或者是确实观察到沙盒的想法,只是这里的映射发生在主机的命令行上?

最佳答案

How do I route port 80 of the EC2 instance to port 80 of the container?

如果我理解上下文,您可以通过运行以下命令来执行此操作 -
$ sudo docker run -p 80:80 webapp_image:version

这会将主机的 80 端口路由到容器的 80 端口。

在此之后,您需要在 EC2 实例的安全组中打开端口 80,如果它仍然无法正常工作,请按照检查点进行操作 -
1.主机上的防火墙,如iptables、selinux等
2. 验证AWS中的EC2实例安全组。
3. 验证 AWS 中子网的 NACL 规则。

关于amazon-web-services - Docker 的 EXPOSE 不会破坏所谓的沙箱吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51877069/

相关文章:

php - Laravel 8 - 不支持的授权类型

Delphi-使用套接字从网络下载文件

http - 如何做 HTTP 等同于多播

c# - 新 Visual Studio 2019 中的环境变量为空,但 Visual Studio 2017 中没有

amazon-web-services - AWS CloudFormation - 加载 JSON 映射作为模板参数

java - AWS不同区域的数据和数据库存储

mysql 从 docker 退出(1)

linux - 由于文件权限,无法访问 Docker 套接字

amazon-web-services - 使用自动缩放将节点添加到现有的 aerospike 集群

amazon-web-services - 如何将stepfunctionexecutionId解析为SageMaker批量转换作业名称?