Docker学习笔记 - Docker容器的网络基础

时间:2023-11-23 08:17:50

一、虚拟网桥 docker0

docker0 是 linux的虚拟网桥,守护进程通过docker0给容器提供网络连接的各种服务。

网桥是数据链路层设备,通常ip地址是网络层的设置。linux的虚拟网桥,有特殊的地方,它是通用网络设备抽象的一种,可以设置ip地址,相当于拥有一个隐藏的虚拟网卡。

docker容器启动时,创建容器中的网络设备eth0,同时在主机上打开一个名为veth*端口,用来和容器网络通信。

1、查看docker默认创建的虚拟网桥

$ ip a show docker0

Docker学习笔记 - Docker容器的网络基础

2、查看容器的网络地址

Docker学习笔记 - Docker容器的网络基础

二、网桥地址管理

1、安装网桥管理工具

sudo apt-get install bridge-utils

sudo brctl show

看到了docker0的网桥设备

docker run -it -name nwt1 ubuntu /bin/bash

# ifconfig

##看到了eth0,有ip和mac

CTRL+P

sudo brctl show

看到了docker0设备,interfaces里多了一个vethda1c8d9接口

ifconfig  也可以看到这个网络接口

2、修改docker0地址

sudo ifconfig docker0 192.168.200.1 netmask 255.255.255.0

sudo service docker restart

docker run -it ubuntu /bin/bash

ifconfig

3、使用自定义的虚拟网桥

sudo brctl addbr  br0

sudo ifconfig br0 192.168.100.1 netmask 255.255.255.0

ifconfig

sudo vim /etc/default/docker

DOCKER_OPTS=" b=br0 "

service docker restart

ps -ef | grep docker

docker run -it ubuntu /bin/bash