提交 8a611411 编写于 作者: A amyMaYun 提交者: Gitee

iSula

上级 6b28a94d
......@@ -2,12 +2,12 @@
## 功能描述<a name="zh-cn_topic_0182200847_section65051811194713"></a>
docker-tools支持将宿主机上的物理网卡或虚拟网卡插入到容器,在不使用网卡的时候从容器中删除归还给宿主机,并且可以动态修改网卡配置。插入物理网卡即把宿主机上一块网卡直接添加到容器中,插入虚拟网卡则需要先创建一对veth pair,之后将一端插入到容器中。
iSulad-tools支持将宿主机上的物理网卡或虚拟网卡插入到容器,在不使用网卡的时候从容器中删除归还给宿主机,并且可以动态修改网卡配置。插入物理网卡即把宿主机上一块网卡直接添加到容器中,插入虚拟网卡则需要先创建一对veth pair,之后将一端插入到容器中。
## 命令格式<a name="zh-cn_topic_0182200847_section9239248135514"></a>
```
docker-tools [COMMADN][OPTIONS] <container_id>
isulad-tools [COMMADN][OPTIONS] <container_id>
```
其中:
......@@ -21,66 +21,66 @@ container\_id:容器id。
## 参数说明<a name="zh-cn_topic_0182200847_section6280182644710"></a>
<a name="zh-cn_topic_0182200847_table1869210387418"></a>
<table><thead align="left"><tr id="zh-cn_topic_0182200847_row1569373816419"><th class="cellrowborder" valign="top" width="23.98%" id="mcps1.1.4.1.1"><p id="zh-cn_topic_0182200847_p106936387415"><a name="zh-cn_topic_0182200847_p106936387415"></a><a name="zh-cn_topic_0182200847_p106936387415"></a>命令</p>
</th>
<th class="cellrowborder" valign="top" width="29.82%" id="mcps1.1.4.1.2"><p id="zh-cn_topic_0182200847_p43193341215"><a name="zh-cn_topic_0182200847_p43193341215"></a><a name="zh-cn_topic_0182200847_p43193341215"></a>功能说明</p>
</th>
<th class="cellrowborder" valign="top" width="46.2%" id="mcps1.1.4.1.3"><p id="zh-cn_topic_0182200847_p15693173814112"><a name="zh-cn_topic_0182200847_p15693173814112"></a><a name="zh-cn_topic_0182200847_p15693173814112"></a>选项说明</p>
</th>
</tr>
</thead>
<tbody><tr id="zh-cn_topic_0182200847_row12693163810415"><td class="cellrowborder" valign="top" width="23.98%" headers="mcps1.1.4.1.1 "><p id="zh-cn_topic_0182200847_p8603174842418"><a name="zh-cn_topic_0182200847_p8603174842418"></a><a name="zh-cn_topic_0182200847_p8603174842418"></a>add-nic</p>
</td>
<td class="cellrowborder" valign="top" width="29.82%" headers="mcps1.1.4.1.2 "><p id="zh-cn_topic_0182200847_p16721336607"><a name="zh-cn_topic_0182200847_p16721336607"></a><a name="zh-cn_topic_0182200847_p16721336607"></a>给容器创建一个网卡。</p>
</td>
<td class="cellrowborder" valign="top" width="46.2%" headers="mcps1.1.4.1.3 "><p id="zh-cn_topic_0182200847_p02913277715"><a name="zh-cn_topic_0182200847_p02913277715"></a><a name="zh-cn_topic_0182200847_p02913277715"></a>支持的选项如下:</p>
<a name="zh-cn_topic_0182200847_ul1875817141814"></a><a name="zh-cn_topic_0182200847_ul1875817141814"></a><ul id="zh-cn_topic_0182200847_ul1875817141814"><li>--type:设置网卡类型,当前只支持eth/veth。</li><li>--name:设置网卡名称,格式为[host:]&lt;container&gt;,host不写是随机名字。</li><li>--ip:设置网卡IP地址。</li><li>--mac:设置网卡mac地址。</li><li>--bridge:设置网卡绑定的网桥。</li><li>--mtu:设置网卡的mtu值,默认1500。</li><li>--update-config-only:如果此flag设置了,只更新配置文件,不会实际做添加网卡的动作。</li><li>--qlen:配置qlen值,默认为1000。</li></ul>
</td>
</tr>
<tr id="zh-cn_topic_0182200847_row12634059013"><td class="cellrowborder" valign="top" width="23.98%" headers="mcps1.1.4.1.1 "><p id="zh-cn_topic_0182200847_p12351181472613"><a name="zh-cn_topic_0182200847_p12351181472613"></a><a name="zh-cn_topic_0182200847_p12351181472613"></a>remove-nic</p>
</td>
<td class="cellrowborder" valign="top" width="29.82%" headers="mcps1.1.4.1.2 "><p id="zh-cn_topic_0182200847_p78191855207"><a name="zh-cn_topic_0182200847_p78191855207"></a><a name="zh-cn_topic_0182200847_p78191855207"></a>从容器中将网卡删除,还原至宿主机。</p>
</td>
<td class="cellrowborder" valign="top" width="46.2%" headers="mcps1.1.4.1.3 "><p id="zh-cn_topic_0182200847_p4233191489"><a name="zh-cn_topic_0182200847_p4233191489"></a><a name="zh-cn_topic_0182200847_p4233191489"></a>支持的选项如下:</p>
<a name="zh-cn_topic_0182200847_ul68987187111"></a><a name="zh-cn_topic_0182200847_ul68987187111"></a><ul id="zh-cn_topic_0182200847_ul68987187111"><li>--type:设置网卡的类型。</li><li>--name:设置网卡的名称,格式为[host:]&lt;container&gt;</li></ul>
</td>
</tr>
<tr id="zh-cn_topic_0182200847_row915811441301"><td class="cellrowborder" valign="top" width="23.98%" headers="mcps1.1.4.1.1 "><p id="zh-cn_topic_0182200847_p54403352715"><a name="zh-cn_topic_0182200847_p54403352715"></a><a name="zh-cn_topic_0182200847_p54403352715"></a>list-nic</p>
</td>
<td class="cellrowborder" valign="top" width="29.82%" headers="mcps1.1.4.1.2 "><p id="zh-cn_topic_0182200847_p17641112811"><a name="zh-cn_topic_0182200847_p17641112811"></a><a name="zh-cn_topic_0182200847_p17641112811"></a>列出容器中所有的网卡。</p>
</td>
<td class="cellrowborder" valign="top" width="46.2%" headers="mcps1.1.4.1.3 "><p id="zh-cn_topic_0182200847_p164614131884"><a name="zh-cn_topic_0182200847_p164614131884"></a><a name="zh-cn_topic_0182200847_p164614131884"></a>支持的选项如下:</p>
<a name="zh-cn_topic_0182200847_ul1478910231716"></a><a name="zh-cn_topic_0182200847_ul1478910231716"></a><ul id="zh-cn_topic_0182200847_ul1478910231716"><li>--pretty:按照json格式输出。</li><li>--filter:按照过滤格式输出,比如--filter '{"ip":"192.168.3.4/24", "Mtu":1500}'。</li></ul>
</td>
</tr>
<tr id="zh-cn_topic_0182200847_row17443144712014"><td class="cellrowborder" valign="top" width="23.98%" headers="mcps1.1.4.1.1 "><p id="zh-cn_topic_0182200847_p863734242710"><a name="zh-cn_topic_0182200847_p863734242710"></a><a name="zh-cn_topic_0182200847_p863734242710"></a>update-nic</p>
</td>
<td class="cellrowborder" valign="top" width="29.82%" headers="mcps1.1.4.1.2 "><p id="zh-cn_topic_0182200847_p167205392720"><a name="zh-cn_topic_0182200847_p167205392720"></a><a name="zh-cn_topic_0182200847_p167205392720"></a>更改容器内指定网卡的配置参数。</p>
</td>
<td class="cellrowborder" valign="top" width="46.2%" headers="mcps1.1.4.1.3 "><p id="zh-cn_topic_0182200847_p102662215818"><a name="zh-cn_topic_0182200847_p102662215818"></a><a name="zh-cn_topic_0182200847_p102662215818"></a>支持的选项如下:</p>
<a name="zh-cn_topic_0182200847_ul7172711120"></a><a name="zh-cn_topic_0182200847_ul7172711120"></a><ul id="zh-cn_topic_0182200847_ul7172711120"><li>--name:容器内网卡名(必须项)。</li><li>--ip:设置网卡IP地址。</li><li>--mac:设置网卡mac地址。</li><li>--bridge:设置网卡绑定的网桥。</li><li>--mtu:设置网卡的mtu值。</li><li>--update-config-only:如果此flag设置了,只更新配置文件,不会实际做更新网卡的动作。</li><li>--qlen:配置qlen值。</li></ul>
</td>
</tr>
</tbody>
<table><thead align="left"><tr id="zh-cn_topic_0182200847_row1569373816419"><th class="cellrowborder" valign="top" width="23.98%" id="mcps1.1.4.1.1"><p id="zh-cn_topic_0182200847_p106936387415"><a name="zh-cn_topic_0182200847_p106936387415"></a><a name="zh-cn_topic_0182200847_p106936387415"></a>命令</p>
</th>
<th class="cellrowborder" valign="top" width="29.82%" id="mcps1.1.4.1.2"><p id="zh-cn_topic_0182200847_p43193341215"><a name="zh-cn_topic_0182200847_p43193341215"></a><a name="zh-cn_topic_0182200847_p43193341215"></a>功能说明</p>
</th>
<th class="cellrowborder" valign="top" width="46.2%" id="mcps1.1.4.1.3"><p id="zh-cn_topic_0182200847_p15693173814112"><a name="zh-cn_topic_0182200847_p15693173814112"></a><a name="zh-cn_topic_0182200847_p15693173814112"></a>选项说明</p>
</th>
</tr>
</thead>
<tbody><tr id="zh-cn_topic_0182200847_row12693163810415"><td class="cellrowborder" valign="top" width="23.98%" headers="mcps1.1.4.1.1 "><p id="zh-cn_topic_0182200847_p8603174842418"><a name="zh-cn_topic_0182200847_p8603174842418"></a><a name="zh-cn_topic_0182200847_p8603174842418"></a>add-nic</p>
</td>
<td class="cellrowborder" valign="top" width="29.82%" headers="mcps1.1.4.1.2 "><p id="zh-cn_topic_0182200847_p16721336607"><a name="zh-cn_topic_0182200847_p16721336607"></a><a name="zh-cn_topic_0182200847_p16721336607"></a>给容器创建一个网卡。</p>
</td>
<td class="cellrowborder" valign="top" width="46.2%" headers="mcps1.1.4.1.3 "><p id="zh-cn_topic_0182200847_p02913277715"><a name="zh-cn_topic_0182200847_p02913277715"></a><a name="zh-cn_topic_0182200847_p02913277715"></a>支持的选项如下:</p>
<a name="zh-cn_topic_0182200847_ul1875817141814"></a><a name="zh-cn_topic_0182200847_ul1875817141814"></a><ul id="zh-cn_topic_0182200847_ul1875817141814"><li>--type:设置网卡类型,当前只支持eth/veth。</li><li>--name:设置网卡名称,格式为[host:]&lt;container&gt;,host不写是随机名字。</li><li>--ip:设置网卡IP地址。</li><li>--mac:设置网卡mac地址。</li><li>--bridge:设置网卡绑定的网桥。</li><li>--mtu:设置网卡的mtu值,默认1500。</li><li>--update-config-only:如果此flag设置了,只更新配置文件,不会实际做添加网卡的动作。</li><li>--qlen:配置qlen值,默认为1000。</li></ul>
</td>
</tr>
<tr id="zh-cn_topic_0182200847_row12634059013"><td class="cellrowborder" valign="top" width="23.98%" headers="mcps1.1.4.1.1 "><p id="zh-cn_topic_0182200847_p12351181472613"><a name="zh-cn_topic_0182200847_p12351181472613"></a><a name="zh-cn_topic_0182200847_p12351181472613"></a>remove-nic</p>
</td>
<td class="cellrowborder" valign="top" width="29.82%" headers="mcps1.1.4.1.2 "><p id="zh-cn_topic_0182200847_p78191855207"><a name="zh-cn_topic_0182200847_p78191855207"></a><a name="zh-cn_topic_0182200847_p78191855207"></a>从容器中将网卡删除,还原至宿主机。</p>
</td>
<td class="cellrowborder" valign="top" width="46.2%" headers="mcps1.1.4.1.3 "><p id="zh-cn_topic_0182200847_p4233191489"><a name="zh-cn_topic_0182200847_p4233191489"></a><a name="zh-cn_topic_0182200847_p4233191489"></a>支持的选项如下:</p>
<a name="zh-cn_topic_0182200847_ul68987187111"></a><a name="zh-cn_topic_0182200847_ul68987187111"></a><ul id="zh-cn_topic_0182200847_ul68987187111"><li>--type:设置网卡的类型。</li><li>--name:设置网卡的名称,格式为[host:]&lt;container&gt;</li></ul>
</td>
</tr>
<tr id="zh-cn_topic_0182200847_row915811441301"><td class="cellrowborder" valign="top" width="23.98%" headers="mcps1.1.4.1.1 "><p id="zh-cn_topic_0182200847_p54403352715"><a name="zh-cn_topic_0182200847_p54403352715"></a><a name="zh-cn_topic_0182200847_p54403352715"></a>list-nic</p>
</td>
<td class="cellrowborder" valign="top" width="29.82%" headers="mcps1.1.4.1.2 "><p id="zh-cn_topic_0182200847_p17641112811"><a name="zh-cn_topic_0182200847_p17641112811"></a><a name="zh-cn_topic_0182200847_p17641112811"></a>列出容器中所有的网卡。</p>
</td>
<td class="cellrowborder" valign="top" width="46.2%" headers="mcps1.1.4.1.3 "><p id="zh-cn_topic_0182200847_p164614131884"><a name="zh-cn_topic_0182200847_p164614131884"></a><a name="zh-cn_topic_0182200847_p164614131884"></a>支持的选项如下:</p>
<a name="zh-cn_topic_0182200847_ul1478910231716"></a><a name="zh-cn_topic_0182200847_ul1478910231716"></a><ul id="zh-cn_topic_0182200847_ul1478910231716"><li>--pretty:按照json格式输出。</li><li>--filter:按照过滤格式输出,比如--filter '{"ip":"192.168.3.4/24", "Mtu":1500}'。</li></ul>
</td>
</tr>
<tr id="zh-cn_topic_0182200847_row17443144712014"><td class="cellrowborder" valign="top" width="23.98%" headers="mcps1.1.4.1.1 "><p id="zh-cn_topic_0182200847_p863734242710"><a name="zh-cn_topic_0182200847_p863734242710"></a><a name="zh-cn_topic_0182200847_p863734242710"></a>update-nic</p>
</td>
<td class="cellrowborder" valign="top" width="29.82%" headers="mcps1.1.4.1.2 "><p id="zh-cn_topic_0182200847_p167205392720"><a name="zh-cn_topic_0182200847_p167205392720"></a><a name="zh-cn_topic_0182200847_p167205392720"></a>更改容器内指定网卡的配置参数。</p>
</td>
<td class="cellrowborder" valign="top" width="46.2%" headers="mcps1.1.4.1.3 "><p id="zh-cn_topic_0182200847_p102662215818"><a name="zh-cn_topic_0182200847_p102662215818"></a><a name="zh-cn_topic_0182200847_p102662215818"></a>支持的选项如下:</p>
<a name="zh-cn_topic_0182200847_ul7172711120"></a><a name="zh-cn_topic_0182200847_ul7172711120"></a><ul id="zh-cn_topic_0182200847_ul7172711120"><li>--name:容器内网卡名(必须项)。</li><li>--ip:设置网卡IP地址。</li><li>--mac:设置网卡mac地址。</li><li>--bridge:设置网卡绑定的网桥。</li><li>--mtu:设置网卡的mtu值。</li><li>--update-config-only:如果此flag设置了,只更新配置文件,不会实际做更新网卡的动作。</li><li>--qlen:配置qlen值。</li></ul>
</td>
</tr>
</tbody>
</table>
## 约束限制<a name="zh-cn_topic_0182200847_section19472134518914"></a>
- 支持添加物理网卡(eth)和虚拟网卡(veth)两种类型。
- 在添加网卡时可以同时对网卡进行配置,参数包括--ip/--mac/--bridge/--mtu/--qlen。
- docker-tools支持最多添加8个物理网卡到容器。
- 使用docker-tools add-nic向容器添加eth网卡后,如果不加hook,在容器退出前必须手工将nic删除,否则在host上的eth网卡的名字会被更改成容器内的名字。
- 支持最多添加8个物理网卡到容器。
- 使用isulad-tools add-nic向容器添加eth网卡后,如果不加hook,在容器退出前必须手工将nic删除,否则在host上的eth网卡的名字会被更改成容器内的名字。
- 对于物理网卡(1822 vf网卡除外),add-nic必须使用原mac地址,update-nic禁止修改mac地址,容器内也不允许修改mac地址。
- 使用docker-tools add-nic时,设置mtu值,设置范围跟具体的网卡型号有关。
- 使用docker-tools向容器添加网卡和路由时,建议先执行add-nic添加网卡,然后执行add-route添加路由;使用docker-tools从容器删除网卡和路由时,建议先执行remove-route删除路由,然后执行remove-nic删除网卡。
- 使用docker-tools添加网卡时,一块网卡只能添加到一个容器中。
- 使用isulad-tools add-nic时,设置mtu值,设置范围跟具体的网卡型号有关。
- 使用isulad-tools向容器添加网卡和路由时,建议先执行add-nic添加网卡,然后执行add-route添加路由;使用isulad-tools从容器删除网卡和路由时,建议先执行remove-route删除路由,然后执行remove-nic删除网卡。
- 使用isulad-tools添加网卡时,一块网卡只能添加到一个容器中。
## 使用示例<a name="zh-cn_topic_0182200847_section189257450475"></a>
- 启动一个系统容器,指定hook spec为docker hook执行配置脚本:
- 启动一个系统容器,指定hook spec为isulad hook执行配置脚本:
```
[root@localhost ~]# lcrc run -tid --hook-spec /etc/docker-tools/hookspec.json --system-container --external-rootfs /root/root-fs none init
[root@localhost ~]# lcrc run -tid --hook-spec /etc/isulad-tools/hookspec.json --system-container --external-rootfs /root/root-fs none init
2aaca5c1af7c872798dac1a468528a2ccbaf20b39b73fc0201636936a3c32aa8
```
......@@ -88,14 +88,14 @@ container\_id:容器id。
- 添加一个虚拟网卡到容器
```
[root@localhost ~]# docker-tools add-nic --type "veth" --name abc2:bcd2 --ip 172.17.28.5/24 --mac 00:ff:48:13:xx:xx --bridge docker0 2aaca5c1af7c
[root@localhost ~]# isulad-tools add-nic --type "veth" --name abc2:bcd2 --ip 172.17.28.5/24 --mac 00:ff:48:13:xx:xx --bridge docker0 2aaca5c1af7c
Add network interface to container 2aaca5c1af7c (bcd2,abc2) done
```
- 添加一个物理网卡到容器
```
[root@localhost ~]# docker-tools add-nic --type "eth" --name eth3:eth1 --ip 172.17.28.6/24 --mtu 1300 --qlen 2100 2aaca5c1af7c
[root@localhost ~]# isulad-tools add-nic --type "eth" --name eth3:eth1 --ip 172.17.28.6/24 --mtu 1300 --qlen 2100 2aaca5c1af7c
Add network interface to container 2aaca5c1af7c (eth3,eth1) done
```
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册