docker网桥

1.docker网桥简介

docker服务默认会创建一个docker0网桥,用于连接容器和宿主机的网络。docker0接口的IP地址默认为172.17.0.1,。

命令brctl  show可以查看存在的网桥的信息,可以看到该网桥上还没有接口,这是因为还没有创建容器。

docker0网桥的接口默认是以veth开头的字符串。

创建完新的容器,会被分配一个该网段可用的IP地址,网关默认就是172.17.0.1

2.docker网络配置

docker有四中网络模式,在创建容器时,可以使用"--net选项指定"网络模式。

1)host模式

host模式就是创建的容器和宿主机共用同一个Network Namespace,即容器使用宿主机的IP地址和端口。

创建容器之前,检测宿主机的httpd服务并没有启动。(host模式的容器与宿主机相同的服务不能同时运行,否则会起冲突)

创建容器名称为test2,网络模式为host。使用的镜像已经添加了httpd服务,所以容器test2中正在运行httpd服务。

查看正在运行的容器

在宿主机中查看发现,有httpd的进程。

宿主机的IP地址为192.168.204.133

容器test2并没有独自的IP地址。

访问该网址,发现可以看到Apache的测试页面,这个htppd服务正是由容器test2提供的。

2)container模式

这个模式的容器将和已创建的容器共用同一个网络名称空间。

结合选项:--net=container:容器名称或ID

这个容器名称或ID是将要共用Network Namespace的容器的。

同样可以看到,新创建的test3也没有独立的IP地址。

3)none模式

none模式的容器可以拥有独自的网络名称空间,但是在创建容器时并不会进行任何网络配置,即这个模式的容器没有网卡、IP、路由等信息,需要手动配置。

创建none模式的容器,并且查看其网络配置。

给none模式的容器分配网卡的方法:

(1)创建网络命名空间

定义test4的pid号为一个变量,方便之后使用。

创建目录

创建链接

(2)创建接口,并配置。

创建接口对A和B

将A分配到docker0网桥上

开启A接口

将B分配到test4容器。

重命名B接口为eth0

开启eth0

配置eht0的IP地址为192.168.0.10

配置网关

配置IP地址和默认网关,根据实际情况配置。

查看test4的IP地址

4)bridge模式

在创建容器时,不加--net选项,默认为bridge模式。

自定义网桥

基本步骤:

(1)停止docker服务

(2)定义网桥

(3)给网桥分配IP地址

(4)以-b方式指定网桥

停止docker服务

添加网桥,名称为br0

为br0分配IP地址为192.168.0.1

开启br0

修改/etc/sysconfig/docker配置文件

在OPTIONS=‘--selinux -enabled --log-driver=journald‘的末尾添加"-b=br0

启动docker服务,发现增加了br0网桥。

启动test1后,发现在br0上添加了接口。

3.容器主机名、DNS服务

容器的主机名和DNS依赖于三个配置文件,使用mount命令,可以查看挂载。

容器中的/etc/resolve.conf和宿主机的是一样的,这种机制可以让宿主机DNS信息发生跟新后,所有容器的DNS可以根据配置文件/etc/resolve.conf立即得到跟新。

在创建容器时,可以结合选项来指定容器的主机名和DNS服务器地址。

-h 主机名

--dns=DNS服务器地址

时间: 2024-08-05 22:04:43

docker网桥的相关文章

虚拟机ping不通主机的另一种原因(docker网桥网段覆盖了本机网段)

在虚拟机ping主机显示仔细看返回的请求是172.18.0.1返回的,查看本地网卡 原来是docker网桥的ip段把本机ip段覆盖了 所以down掉网桥就可以了 [[email protected] ~]# ip link set dev br-1284c787c3d1 down[[email protected] ~]# ip a 然后再ping主机 当不需要与主机段的ip通信时,可以把刚才的docker网桥打开 [[email protected] ~]# ip link set dev b

docker网桥的特性

隔离性 连接同一个网桥,就相当于独立的个体,进入同一个房间一样.从而使得使用相同的端口号,不会发生冲突. docker网桥的类型 默认网桥 使用场景:创建容器时,容器默认链接的网桥 用户自定义网桥 创建网桥 docker network networkName 使用场景:用户在创建容器的时候,可以指定连接那个自定义网桥 docker run --network networkName 默认网桥和用户自定义网桥区别 用户自定义网桥灵活:可以根据需要配置网络设置. 自定义网桥可以使用ping+容器名

pipework配置docker网桥网络

在使用Docker的过程中,有时候我们会有将Docker容器配置到和主机同一网段的需求.要实现这个需求,我们只要将Docker容器和主机的网卡桥接起来,再给Docker容器配上IP就可以了.pipework工具来实现这一需求 1.安装pipework2.宿主机配置桥接网络(可以省略)3.给容器添加桥接地址 实验环境:宿主机:10.207.0.99/24 网关:10.207.0.0.1容器test:10.207.0.236/24 1.安装pipework[[email protected] ~]g

[svc]linux下网桥-docker网桥

网桥和交换机 2口交换机=网桥 交换机: 工作在数据链路层,根据源mac学习(控制层),目的mac转发(数据层). linux的网卡 vmware workstation中的桥接 参考: http://blog.daocloud.io/docker-bridge/ docker0的桥接 参考: http://blog.daocloud.io/docker-bridge/ 网桥操作工具 yum install bridge-utils -y 如果需要使用网桥模式,需要关掉NetworkManage

60、Docker 学习笔记(CentOS 7.1)

基本概念 Docker 包括三个基本概念 镜像(Image) 容器(Container) 仓库(Repository)理解了这三个概念,就理解了 Docker 的整个生命周期. Docker 镜像 Docker 镜像就是一个只读的模板.例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序.镜像可以用来创建 Docker 容器.Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好

Docker 搭建 Tomcat 运行环境

使用 Docker 搭建 Tomcat 运行环境 1. Docker与虚拟机的区别 2 搭建过程 2.1 准备宿主系统 准备一个 CentOS 7操作系统,具体要求如下: · 必须是 64 位操作系统 · 建议内核在 3.8 以上 查看 CentOS 7系统内核: [[email protected] ~]# uname  -r 3.10.0-327.el7.x86_64 2.2 安装Docker [[email protected] ~]# yum  -y   install   docker

Docker NAT iptables实现 及网络配置

Docker NAT iptables实现 默认情况下,容器可以主动访问到外部网络的连接,但是外部网络无法访问到容器 容器访问外部实现 容器所有到外部网络的连接,源地址都会被 NAT 成本地系统的 IP 地址(即docker0地址).这是使用 iptables 的源地址伪装操作实现的 查看主机的 NAT 规则 [[email protected] sshd_dockerfile]# iptables -t nat -vnL Chain POSTROUTING (policy ACCEPT 0 p

docker的网络管理(1)

Docker 中的网络功能介绍 默认情况下,容器可以建立到外部网络的连接,但是外部网络无法连接到容器. Docker 允许通过外部访问容器或容器互联的方式来提供网络服务 外部访问容器: 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过  -P  或  -p  参数来指定端口映射. 实验环境: Centos7 运行一个容器,提供web服务和ssh服务 宿主机启用路由转发(net.ipv4.ip_forward=1) 实验步骤: 之前已经创建好镜像啦 执行docker images查

docker—适用于中小企业的生产、测试、开发环境

一.使用 Docker 搭建 Tomcat 运行环境 1 Docker与虚拟机 2 搭建过程 2.1 准备宿主系统 准备一个 CentOS 7操作系统,具体要求如下: 必须是 64 位操作系统 建议内核在 3.8 以上 通过以下命令查看您的 CentOS 内核: # uname -r 2.2 安装Docker # yum install docker 可使用以下命令,查看 Docker 是否安装成功: # docker version 若输出了 Docker 的版本号,则说明安装成功了,可通过以