博客
关于我
Docker精华问答 | 如何让一个容器连接两个网络?
阅读量:354 次
发布时间:2019-03-04

本文共 1179 字,大约阅读时间需要 3 分钟。

Docker 深度问答

1. vethxxxx 与容器的对应关系

veth 是 Docker 中虚拟网络接口的一种实现方式。通过 docker network ls 命令可以看到所有创建的 Docker 网络,包括对应的 veth 设备 ID。例如,网络 ID br-56f04389b8f 对应的 veth 设备为 veth56f04389b8f@if11。容器连接到 Docker 网络后,其内部的 IP 地址会与 veth 设备绑定,通常可以通过容器的 ip addr 命令查看对应的 IP。

2. 容器如何连接多个网络

在使用 docker run 时,容器只能连接一个默认网络。要连接多个网络,可以使用 docker network connect 命令在运行后手动连接。例如:

docker network connect --name "my-network" --driver "桥接" my-network

这样容器就可以同时连接到多个网络。

3. Docker 多宿主网络配置

在 Docker Swarm 环境中,多宿主网络可以通过 overlay 网络实现。二代 Swarm(Docker Swarm Mode)默认支持 overlay 网络,只需在每个节点上运行 docker swarm initdocker swarm join 即可建立集群,服务容器会自动连接到 overlay 网络。注意在多网卡环境中使用 --advertise-addr 参数,确保正确的网络地址被宣告。

4. Docker run 报错网络不存在

在 Docker Swarm 环境中,创建的 overlay 网络只有在服务容器使用时才可用。docker network ls 中可能显示网络 Scope 为 swarm,这意味着该网络仅供服务容器使用。零散的容器无法使用这些网络,除非明确指定 --attachable 参数。global Scope 的网络则可以在 docker run 中使用。

5. 容器如何获取宿主 IP

在单机环境中,直接通过环境变量 HOST_IP 获取宿主 IP。例如:

docker run -it --env-file /path/to/hosts -e HOST_IP=宿主IP 镜像名

在集群环境中,可以在服务启动时挂载宿主的 /etc/variables 文件,文件中包含各节点的宿主 IP。例如:

docker service create --name app --mount type=bind,source=/etc/variables,target=/etc/variables:ro myapp

服务镜像入口脚本加载该环境变量,得到宿主 IP。


欢迎在留言区交流更多 Docker 学习内容!

转载地址:http://mhae.baihongyu.com/

你可能感兴趣的文章
Objective-C实现AvlTree树算法(附完整源码)
查看>>
Objective-C实现backtracking Jump Game回溯跳跃游戏算法(附完整源码)
查看>>
Objective-C实现BACKTRACKING 方法查找集合的幂集算法(附完整源码)
查看>>
Objective-C实现bailey borwein plouffe算法(附完整源码)
查看>>
Objective-C实现balanced parentheses平衡括号表达式算法(附完整源码)
查看>>
Objective-C实现base64加密和base64解密算法(附完整源码)
查看>>
Objective-C实现base64加解密(附完整源码)
查看>>
Objective-C实现base64编码 (附完整源码)
查看>>
Objective-C实现base85 编码算法(附完整源码)
查看>>
Objective-C实现basic graphs基本图算法(附完整源码)
查看>>
Objective-C实现BCC校验计算(附完整源码)
查看>>
Objective-C实现bead sort珠排序算法(附完整源码)
查看>>
Objective-C实现BeadSort珠排序算法(附完整源码)
查看>>
Objective-C实现bellman ford贝尔曼福特算法(附完整源码)
查看>>
Objective-C实现bellman-ford贝尔曼-福特算法(附完整源码)
查看>>
Objective-C实现bellman-ford贝尔曼-福特算法(附完整源码)
查看>>
Objective-C实现bellmanFord贝尔曼-福特算法(附完整源码)
查看>>
Objective-C实现BellmanFord贝尔曼-福特算法(附完整源码)
查看>>
Objective-C实现bezier curve贝塞尔曲线算法(附完整源码)
查看>>
Objective-C实现bfs 最短路径算法(附完整源码)
查看>>