Docker 网络模式入门:bridge、host 与容器互通的原理
【摘要】 bridge 自定义网络支持容器名互通、host 共享宿主栈性能最强、-p 端口映射最直观:三种 Docker 网络模式的原理与选型建议,跨主机通信是下一站。
容器之间怎么互相访问?容器里的服务怎么暴露给外部?答案都在 Docker 的网络模式里。这篇入门讲清三种常用模式与选型建议。
一、bridge:默认的隔离网络
不指定网络时,容器都接入 docker0 网桥。同一 bridge 网络里的容器可以用容器名互相访问(需自定义网络,默认 bridge 不支持 DNS 解析):
docker network create app-net
docker run -d --name db --network app-net mysql:8.0
docker run -d --name app --network app-net myapp:1.0
# app 容器内直接 ping db 互通
二、host:共享宿主机网络
docker run -d --network host nginx
容器直接使用宿主机的网络栈,性能最好、无需端口映射,但端口冲突需自己管理,且隔离性最弱。对性能敏感的代理、网关类服务常用。
三、端口映射:最常用的暴露方式
docker run -d -p 8080:80 nginx # 宿主 8080 → 容器 80
-p 参数把容器端口映射到宿主机,外部用户访问宿主端口即可到达容器服务。
四、选型建议
- 单机多容器协作:自定义 bridge 网络(支持容器名 DNS);
- 追求极致性能:host 模式(Linux);
- 对外暴露少量服务:-p 端口映射最直观。
结语:理解三种模式的隔离与性能取舍,容器网络的绝大多数问题都能解释清楚。跨主机通信则是下一站——Swarm/K8s 的领域。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)