容器的5种网络模式和 K8S pod使用的容器网络模式
文档说明:只记录关键地方; 发文时间: 2022-10-23
理解了容器网络模式,也就知道了如何把多个容器相互连接起来
容器的网络模式:
- network_mode: "bridge"
- network_mode: "host"
- network_mode: "none"
- network_mode: "service:[service name]"
- network_mode: "container:[container name/id]"
· host模式,使用--net=host指定。
· container模式,使用--net=container:NAME_or_ID指定。
· none模式,使用--net=none指定。
· bridge模式,使用--net=bridge指定,默认设置。(也可以自定义桥接模式,比如openvswitch)
docker network https://docs.docker.com/network/
来个例子 (network_mode: "service:[service name]" 模式的例子)
共享容器网络
容器之间可以直接使用 127.0.0.1 或者 localhost 连接
version: "3" services: pause: # image: gcr.io/google-containers/pause-amd64:3.1 image: alpine:latest restart: always container_name: pause command: [ 'tail', '-f','/dev/null' ] ports: - "80:80" - "443:443" nginx: image: nginx:alpine network_mode: 'service:pause' depends_on: - pause php-fpm: image: php:7.4-fpm-alpine depends_on: - pause network_mode: 'service:pause'
docker-compose 容器服务之间互访 配置(常用)
方式 1: extra_hosts 容器名称 (也就是自定义域名映射)
原理: 添加主机名的标签,就是往/etc/hosts文件中添加一些记录 ; 在K8S 环境中,使用 hostAliases 参数设置,
extra_hosts: - "my-app-service:192.168.3.205"
方式 2: depends_on 容器启动顺序
depends_on: - mysql - nginx
方式 3: links 链接其他服务(可以链接外部服务)
links: - mongodb - nginx
K8S POD 的网络模式
POD 使用的网络模式其实是
5. network_mode: "container:[container name/id]"
同一个 pod 内的各容器共享一个网络,因此可以使用127.0.0.1 或者 localhost 容器之间互访
默认 POD 由
k8s.gcr.io/pause
守护容器提供网络,因此你看到pod里的所有容器都可以使用127.0.0.1或者localhost 连接
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术