全部文档
当前文档

共搜索到 0 条结果

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

使用云服务器自建容器并实现通信的实践教程

最近更新时间:2026-06-16 17:51:51

本实践主要介绍如何使用云服务器,通过自建容器的方式实现通信。

背景信息

在不使用金山云容器产品的情况下,支持用户在弹性云服务器中部署容器,并实现同一个子网中不同弹性云服务器内的容器相互通信。

云服务器内部署容器,容器地址非 VPC 网络地址,通过 VPC 路由方式转发。只需简单配置路由表,就可实现容器网络的互通,灵活方便。

约束限制

此场景下对网络拓扑有如下要求:

  • 弹性云服务器在同一子网内。例如:VPC 子网网段为 192.168.0.0/24,弹性云服务器的 IP 地址为 192.168.0.2192.168.0.3

  • 容器网段与 VPC 子网不在一个网段,同一台弹性云服务器内的容器在同一个网段,不同弹性云服务器内容器的网段不同。例如:KEC1 中容器网段为 10.0.2.0/24,KEC2 中容器网段为 10.0.3.0/24

  • 发送给容器的数据包下一跳为容器所在弹性云服务器。例如:发送给 10.0.2.0/24 网段的数据包下一跳为 192.168.0.2,发送给 10.0.3.0/24 网段的数据包下一跳为 192.168.0.3

网络拓扑结构如下:

准备工作

开始配置前,请确保已完成以下准备:

  • 已规划好 VPC 子网网段及各弹性云服务器的 IP 地址。

  • 已规划好各弹性云服务器内容器要使用的网段,且不同弹性云服务器内容器网段不能重叠。

  • 弹性云服务器上已安装 Docker CE。

实践流程

步骤一:部署容器并配置网络

  1. 创建 VPC 及 VPC 网段。具体操作请参见创建虚拟私有网络

  2. 创建弹性云服务器。具体方法请参见云服务器-新建实例

  3. 在弹性云服务器上部署容器。您可以使用 Docker CE 完成容器的部署,详细操作步骤请参考第三方软件的帮助文档

    同一台 KEC 内的容器需要在同一个网段,且不同 KEC 内容器网段不能重叠。

  4. 添加 VPC 路由表信息。在 VPC 路由表中添加路由信息,让发送给 10.0.2.0/24 网段的数据包下一跳为 192.168.0.2,发送给 10.0.3.0/24 网段的数据包下一跳为 192.168.0.3,也就是让发送给容器的数据包下一跳都为容器所在 KEC。

    如果容器迁移到其他弹性云服务器后,需要在 VPC 路由表中添加新的路由信息。

  5. 添加安全组规则。

    为了能够通过 traceroute 命令和 ping 命令测试容器网络是否连通,为弹性云服务器的安全组添加以下规则,开放 ICMP 和 UDP,具体操作请参添加安全组规则

    方向

    协议/应用

    端口

    源地址

    入方向

    ICMP

    全部

    x.x.x.x/x

    入方向

    UDP

    全部

    x.x.x.x/x

步骤二:网络连通性验证

分别在两台弹性云服务器上部署容器,通过 ping 来测试容器网络是否能连通。

  1. 在 KEC1 上创建网络连接并指定容器网段,然后创建容器:

    docker network create --subnet 10.0.2.0/24 my-net
    docker run -d --name nginx --net my-net -p 8080:80 nginx:alpine
  2. 在 KEC2 上同样创建网络连接和容器,容器网段为 10.0.3.0/24

    docker network create --subnet 10.0.3.0/24 my-net
    docker run -d --name nginx --net my-net -p 8080:80 nginx:alpine
  3. 将弹性云服务器上 iptables 里面 filter 表的 FORWARD 链的默认策略设置为 ACCEPT

    Docker 为安全性将 iptables 里面 filter 表的 FORWARD 链默认策略设置成了 drop,因此需要修改。

    iptables -P FORWARD ACCEPT

  4. 进入 KEC1 的容器。

    docker exec -it nginx /bin/sh
  5. 在容器内,尝试使用 pingtraceroute 测试网络连通性。

    如果能够 ping 通,且 traceroute 路由路径为 10.0.2.2 -> 10.0.2.1 -> 192.168.0.3 -> 10.0.3.2,与前面设置的路由转发规则一致,说明配置成功。

    • 执行ping命令

      ping 10.0.3.2
    • 预期输出示例

      PING 10.0.3.2 (10.0.3.2): 56 data bytes
      64 bytes from 10.0.3.2: seq=0 ttl=62 time=0.570 ms
      64 bytes from 10.0.3.2: seq=1 ttl=62 time=0.343 ms
      64 bytes from 10.0.3.2: seq=2 ttl=62 time=0.304 ms
      64 bytes from 10.0.3.2: seq=3 ttl=62 time=0.319 ms
    • 执行traceroute 命令

      traceroute -d 10.0.3.2
    • 预期输出示例

      traceroute to 10.0.3.2 (10.0.3.2), 30 hops max, 46 byte packets
       1 10.0.2.1 (10.0.2.1) 0.007 ms 0.004 ms 0.007 ms
       2 192.168.0.3 (192.168.0.3) 0.232 ms 0.165 ms 0.248 ms
       3 10.0.3.2 (10.0.3.2) 0.366 ms 0.308 ms 0.158 ms

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈