首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个CMD运行在对接组合中,但没有在容器上生效。

多个CMD运行在对接组合中,但没有在容器上生效。
EN

Stack Overflow用户
提问于 2022-09-11 19:02:28
回答 1查看 56关注 0票数 0

我有一个构建GoBGP扬声器映像的dockefile。

这是dockerfile

代码语言:javascript
复制
FROM ubuntu:16.04

RUN apt-get update && apt-get install -y \
        wget \
        iputils-ping \
        traceroute \
        tcpdump \
        iproute2 \
        && rm -rf /var/lib/apt/lists/*

RUN wget https://github.com/osrg/gobgp/releases/download/v1.25/gobgp_1.25_linux_amd64.tar.gz && \
    tar zxvf gobgp_1.25_linux_amd64.tar.gz && \
    mv gobgp* /usr/bin/

RUN mkdir -p /opt/gobgp
WORKDIR /opt/gobgp/

COPY docker/gobgp/configs/* ./configs/

CMD ["gobgpd"]
EXPOSE 50051

我也有一个对接-撰写,将带来一个完整的gobgp网络拓扑。我试图在gobgp_1服务上执行多个命令:

代码语言:javascript
复制
gobgp_1:
    build:
      context: ./
      dockerfile: ./docker/gobgp/Dockerfile
    command: sh -c "gobgpd -f configs/gobgpd_1.conf ; gobgp global rib add -a ipv4 11.8.0.0/24
               ; gobgp global rib add -a ipv4 11.7.0.0/24
               ; gobgp global rib add -a ipv4 11.6.0.0/24
               ; gobgp global rib add -a ipv4 11.5.0.0/24
               "
    privileged: true
    networks:
      net5:
        ipv4_address: 11.8.0.2
      net6:
        ipv4_address: 11.7.0.2
      net7:
        ipv4_address: 11.6.0.3
      net8:
        ipv4_address: 11.5.0.3

gobgpd -f configs/gobgpd_1.conf命令成功运行,但其余命令运行,但它没有在gobgpd应用程序上生效。如果我通过跳入容器bash手动运行这些命令,则该命令将成功运行,并且我看到gobgpd应用程序上的更改。

当我使用以下命令时,为您提供我所期望的信息的上下文:gobgp global rib,但是我没有看到任何东西,在我把对接器-组合起来之后。否则,如果在运行命令时手动运行,则会看到预期的信息。

这是我所有的码头组成文件。

代码语言:javascript
复制
version: '3'

services:
  isp_1:
    build:
      context: ./
      dockerfile: ./docker/gobgp/Dockerfile
    command: "gobgpd -f configs/isp_1.conf"
    privileged: true
    networks:
      net1:
        ipv4_address: 9.0.0.3
  isp_2:
    build:
      context: ./
      dockerfile: ./docker/gobgp/Dockerfile
    command: "gobgpd -f configs/isp_2.conf"
    privileged: true
    networks:
      net2:
        ipv4_address: 8.0.0.3
  gobgp_5:
    build:
      context: ./
      dockerfile: ./docker/gobgp/Dockerfile
    command: "gobgpd -f configs/gobgpd_5.conf"
    privileged: true
    networks:
      net2:
        ipv4_address: 8.0.0.2
      net4:
        ipv4_address: 11.10.0.3
  gobgp_4:
    build:
      context: ./
      dockerfile: ./docker/gobgp/Dockerfile
    command: "gobgpd -f configs/gobgpd_4.conf"
    privileged: true
    networks:
      net1:
        ipv4_address: 9.0.0.2
      net3:
        ipv4_address: 11.0.0.3
  gobgp_3:
    build:
      context: ./
      dockerfile: ./docker/gobgp/Dockerfile
    command: "gobgpd -f configs/gobgpd_3.conf"
    privileged: true
    networks:
      net4:
        ipv4_address: 11.10.0.2
      net6:
        ipv4_address: 11.7.0.3
  gobgp_2:
    build:
      context: ./
      dockerfile: ./docker/gobgp/Dockerfile
    command: "gobgpd -f configs/gobgpd_2.conf"
    privileged: true
    networks:
      net3:
        ipv4_address: 11.0.0.2
      net5:
        ipv4_address: 11.8.0.3
  gobgp_1:
    build:
      context: ./
      dockerfile: ./docker/gobgp/Dockerfile
    command: sh -c "gobgpd -f configs/gobgpd_1.conf ; gobgp global rib add -a ipv4 11.8.0.0/24
               ; gobgp global rib add -a ipv4 11.7.0.0/24
               ; gobgp global rib add -a ipv4 11.6.0.0/24
               ; gobgp global rib add -a ipv4 11.5.0.0/24
               "
    privileged: true
    networks:
      net5:
        ipv4_address: 11.8.0.2
      net6:
        ipv4_address: 11.7.0.2
      net7:
        ipv4_address: 11.6.0.3
      net8:
        ipv4_address: 11.5.0.3
  server_1:
    build:
      context: ./
      dockerfile: ./docker/gobgp/Dockerfile
    privileged: true
    networks:
      net7:
        ipv4_address: 11.6.0.2
  controller_1:
    build:
      context: ./
      dockerfile: ./docker/gobgp/Dockerfile
    privileged: true
    networks:
      net8:
        ipv4_address: 11.5.0.2
networks:
  net1:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 9.0.0.0/24
  net2:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 8.0.0.0/24
  net3:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 11.0.0.0/24
  net4:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 11.10.0.0/24
  net5:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 11.8.0.0/24
  net6:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 11.7.0.0/24
  net7:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 11.6.0.0/24
  net8:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 11.5.0.0/24
EN

回答 1

Stack Overflow用户

发布于 2022-11-25 07:05:05

GoBGP只是一个bgp守护进程,它本身不包含任何修改路由表osrg/gobgp#1493的功能。

如果您希望使用GoBGP作为软件路由器的组件并进行数据包转发,则需要实现以下两个选项来实现FIB操作,即使用GoBGP使用内置斑马集成使用gRPC API编写您自己的代码。

使用斑马的例子

代码语言:javascript
复制
[global.config]
  as = 2
  router-id = "172.17.0.3"

[zebra]
    [zebra.config]
        enabled = true
        url = "unix:/var/run/quagga/zserv.api"
        redistribute-route-type-list = ["connect"]
        version = 2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73681952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档