首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何启动一个多接口的docker容器?

如何启动一个多接口的docker容器?
EN

Stack Overflow用户
提问于 2017-08-17 10:48:08
回答 1查看 619关注 0票数 0

我想启动一个有三个接口的docker容器,所有这些接口都将连接到主机上的桥。唯一的解决方案是提供我自己的网络插件。创建容器后,docker守护进程将调用以下接口来配置其网络:

代码语言:javascript
运行
复制
func (d *Driver) Join(r *dknet.JoinRequest) (*dknet.JoinResponse, error)

但是JoinRequest结构中只有一个Endpoint对象,所以上面的调用只能配置一个容器接口。

我不知道如何创建和配置三个容器接口?

EN

回答 1

Stack Overflow用户

发布于 2017-08-17 15:51:59

你需要做很多次

代码语言:javascript
运行
复制
$ docker network create net1
bdc53c143e89d562761eedfd232620daf585968bc9ae022ba142d17601af6146

$ docker network create net2
d9a72a7a6ee6b61da3c6bb17e312e48888807a5a8c159fd42b6c99d219977559

$ docker network create net3
d2be9628f4fd60587d44967a5813e9ba7c730d24e953368b18d7872731a9478c

$ docker run -it --network net3 ubuntu:16.04 bash

root@cd70c7cbe367:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
90: eth0@if91: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:18:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.24.0.2/16 scope global eth0
       valid_lft forever preferred_lft forever

现在,您的容器仅在net3网络上运行。您还可以附加net1net2

代码语言:javascript
运行
复制
$ docker network connect net1 cd70c7cbe367
$ docker network connect net2 cd70c7cbe367

在此之后,签入容器

代码语言:javascript
运行
复制
root@cd70c7cbe367:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
90: eth0@if91: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:18:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.24.0.2/16 scope global eth0
       valid_lft forever preferred_lft forever
92: eth1@if93: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:16:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.22.0.2/16 scope global eth1
       valid_lft forever preferred_lft forever
94: eth2@if95: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:17:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.23.0.2/16 scope global eth2
       valid_lft forever preferred_lft forever

PS:容器中默认缺少ip命令,所以我安装了打包的iproute2进行检查

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45725843

复制
相关文章

相似问题

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