如何查看与Docker容器关联的网络适配器

时间:2019-10-31 14:19:44

标签: docker

如何查看与容器关联的网络适配器。

我启动了一个应用程序,该应用程序启动了50个Docker容器并在Ubuntu 18.04系统上创建了50个“虚拟”网络适配器。

我可以使用public class Main { public ArrayList<Card> cardsList = new ArrayList<>(); public static void main (String [] args){ Main myApp = new Main(); } public void printAll (ArrayList<Card> cardArrayList){ System.out.println(cardArrayList); HandDrawn sender1 = new HandDrawn("Anna", true); HandDrawn sender2 = new HandDrawn("Kalle", false); cardsList.add(0, sender1); cardsList.add(1, sender2); } public void printing(ArrayList<Card> cardsList) { System.out.println(cardsList); } } 查看网络适配器。它显示的是ipv6,但不显示ipv4。 我还可以使用SET testTool="c:\path\VSTest.Console.exe" SET testAssembly=""pathForDll\first.dll" "pathForDll\second.dll"" SET coverTool="path\OpenCover.Console.exe" SET reportTool="path\ReportGenerator.exe" SET coverXML="OpenCoverResults\OpenCover.xml" SET coverReportLocation="CoverageReport" SET history="OpenCoverResults\History\" echo CoverTool %coverTool% -target:%testTool% -targetargs:%testAssembly% -mergebyhash -skipautoprops -register:user -hideskipped:All -filter:"+[*]*" -output:%coverXML% echo ReportTool %reportTool% -reports:%coverXML% -targetdir:%coverReportLocation% start c:\1.PROJECTS\ARIA\Others\Scripts\CoverageReport\index.htm ` 查看docker容器ipv4,但不能查看ipv6。

我还没有找到将网络适配器与Docker容器关联的方法。

2 个答案:

答案 0 :(得分:0)

运行此命令以找到docker网络ID:

docker network ls --no-trunc

NETWORK ID                                                         NAME                DRIVER              SCOPE
1849dpjmcnj7ckw4q2svhvj4r                                          base_default        overlay             swarm

然后检查它:

docker inspect <container_name> | grep "1849dpjmcnj7ckw4q2svhvj4r"
                        "Target": "1849dpjmcnj7ckw4q2svhvj4r",
                    "NetworkID": "1849dpjmcnj7ckw4q2svhvj4r",

答案 1 :(得分:0)

您可以检查第ve对的接口ifindex:

brctl show docker0

要查看Docker桥中的第ve个接口,现在使用此脚本,您可以查看您的容器正在使用哪个接口:

#!/bin/bash

for i in $(ip link list | awk -F '@' '/veth/ {split($2,a,":"); print a[1]}' | sed 's/if//g');do
  for dock in $(docker ps --quiet);do
    dock_index=$(docker exec -ti $dock cat /sys/class/net/eth0/ifindex | sed 's/\r$//')
    if [[ $i == $dock_index ]]; then
       echo "$i $dock"
    fi
  done
done