docker - 端口映射和主机网络之间有区别吗?
问题描述
我有两个命令:
- docker run --name some-nginx -d -p 80:80 nginx
- docker run --name some-nginx -d --network host nginx
据我了解,nginx 将在我的计算机端口 80 上显示默认页面
在我的主机上 localhost:80 的工作原理完全相同:给我默认的 nginx 页面。
但是当我在其他 LAN 机器上尝试时,如果我输入 my-host-machinip:80,第一个有效,但第二个给我“连接被拒绝”
我不明白为什么会这样。
解决方案
--network host
允许容器访问整个主机网络,同时将-p 80:80
容器的 80 端口映射到主机的 80 端口
推荐阅读
- extjs - ExtJS 4.2.1:如何从 Ext.data.Field 转换函数访问代理
- ios - 内部类型配置文件需要“iOS开发”证书
- android - 按钮的设置可见性在android中不起作用
- python - 如何正确指定 numba JIT 函数的签名?
- javascript - 从日期获取日期名称,格式为 dd-mm-yyyy?
- pandas - 避免使用 pandas 到 sqlalchemy 转换的重复项
- reactjs - 使用 Typescript 的 Redux reducer 初始状态
- java - signjar 的 Ant 并行任务
- sas - SAS Hash Tables:有没有办法在不同的键上查找/加入或有可选的键
- java - getAdapterPosition 有时会返回错误的值