启动一个没有网卡的DOcker容器,(创建一个容器,然后启动) 手动添加网卡至容器并改名为eth0, 另一端添加至docker0 并命名为自己姓名全拼, 实现容器与docker0、 容器 与 宿主机IP地址的 连通性。
时间: 2023-05-12 14:04:15 浏览: 155
可以通过以下步骤来实现:
1. 创建一个没有网卡的Docker容器:docker create --name mycontainer ubuntu
2. 手动添加网卡至容器并改名为eth0:docker network connect --interface eth0 bridge mycontainer
3. 在宿主机上添加一个网桥:sudo brctl addbr myfullname
4. 将网桥添加至docker0:sudo brctl addif docker0 myfullname
5. 将容器的IP地址设置为与宿主机在同一网段:docker network disconnect bridge mycontainer && docker network connect --ip 172.17.0.2 --interface eth0 myfullname mycontainer
6. 确认容器与宿主机的连通性:在容器中执行ping 172.17.0.1,宿主机中执行ping 172.17.0.2,如果都能够ping通,则说明连通性正常。
相关问题
在Linux中用docker启动一个没有网卡的容器,手动添加网卡至容器并改名为eth0,另一端添加至docker0并命名为shidunyv
可以通过以下命令在Linux中使用docker启动一个没有网卡的容器,并手动添加网卡至容器并改名为eth0,另一端添加至docker0并命名为shidunyv:
1. 首先,使用以下命令启动一个没有网卡的容器:
docker run --rm -it --cap-add=NET_ADMIN --cap-add=NET_RAW --device /dev/net/tun --name mycontainer ubuntu:latest /bin/bash
2. 然后,在容器中使用以下命令添加网卡并改名为eth0:
ip link add eth0 type veth peer name shidunyv
ip link set eth0 up
ip addr add 192.168.0.2/24 dev eth0
3. 最后,在宿主机中使用以下命令将另一端添加至docker0并命名为shidunyv:
ip link set shidunyv netns $(docker inspect --format '{{.State.Pid}}' mycontainer)
ip netns exec $(docker inspect --format '{{.State.Pid}}' mycontainer) ip link set shidunyv up
ip netns exec $(docker inspect --format '{{.State.Pid}}' mycontainer) ip addr add 192.168.0.1/24 dev shidunyv
这样,你就成功地在Linux中使用docker启动一个没有网卡的容器,并手动添加网卡至容器并改名为eth0,另一端添加至docker0并命名为shidunyv。
阅读全文