Docker创建一个网桥【段]
2018-02-24 00:00
295 查看
摘要: 上篇说了只建了容器,但是没有指定IP。这样每次重启主服务器就要重新修改nginx的配置。今天说的是绑定ip...
Docker服务默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),它在内核层连通了其他
的物理或虚拟网卡, 这就将所有容器和本地主机都放到同一个物理网络。
Docker 默认指定了 docker0 接口 的 IP 地址和子网掩码, 让主机和容器之间 可以通过网桥相互通信,它
还给出了 MTU(接口允许接收的最大传输单元),通常是 1500 Bytes,或宿主主机网络路由上支持的默认
值。 这些值都可以在服务启动的时候进行配置。
自定义网桥:使用情景:1,多台docker容器建不同的个ip段 2,按需要自定义网段
1.如果服务已经运行,那需要先停止服务,并删除旧的网桥。
2.然后创建一个网桥 bridge0 。
#brctl show
bridge name bridge id STP enabled interfaces
bridge0 8000.000000000000 no
docker0 8000.869d2e8946b5 no veth81bbfc0
#ip addr show bridge0
675: bridge0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether 22:3b:a4:38:3f:e4 brd ff:ff:ff:ff:ff:ff
inet 192.168.5.1/24 scope global bridge0
inet6 fe80::203b:a4ff:fe38:3fe4/64 scope link
valid_lft forever preferred_lft forever
$ echo 'DOCKER_OPTS="-b=bridge0"' >> /etc/default/docker [/etc/default/docker是空文件]
$ sudo service docker start
Docker服务默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),它在内核层连通了其他
的物理或虚拟网卡, 这就将所有容器和本地主机都放到同一个物理网络。
Docker 默认指定了 docker0 接口 的 IP 地址和子网掩码, 让主机和容器之间 可以通过网桥相互通信,它
还给出了 MTU(接口允许接收的最大传输单元),通常是 1500 Bytes,或宿主主机网络路由上支持的默认
值。 这些值都可以在服务启动的时候进行配置。
#brctl show bridge name bridge id STP enabled interfaces docker0 8000.869d2e8946b5 no veth81bbfc0
自定义网桥:使用情景:1,多台docker容器建不同的个ip段 2,按需要自定义网段
1.如果服务已经运行,那需要先停止服务,并删除旧的网桥。
$ sudo service docker stop $ sudo ip link set dev docker0 down $ sudo brctl delbr docker0
2.然后创建一个网桥 bridge0 。
$ sudo brctl addbr bridge0 $ sudo ip addr add 192.168.5.1/24 dev bridge0 $ sudo ip link set dev bridge0 u ```p 3,查看增加结果.
#brctl show
bridge name bridge id STP enabled interfaces
bridge0 8000.000000000000 no
docker0 8000.869d2e8946b5 no veth81bbfc0
#ip addr show bridge0
675: bridge0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether 22:3b:a4:38:3f:e4 brd ff:ff:ff:ff:ff:ff
inet 192.168.5.1/24 scope global bridge0
inet6 fe80::203b:a4ff:fe38:3fe4/64 scope link
valid_lft forever preferred_lft forever
4,配置 Docker 服务,默认桥接到创建的网桥上。[将系统默认的docker0换成了bridge0]
$ echo 'DOCKER_OPTS="-b=bridge0"' >> /etc/default/docker [/etc/default/docker是空文件]
$ sudo service docker start
说明: 1,平时我们使用linux的网络配置直接修改hosts或hostname,但是在docker内修改是无效的。 2,Docker 1.2.0 开始支持在运行中的容器里编辑 /etc/hosts , /etc/hostname 和 /etc/resolve.conf 文 件。但是这些修改是临时的,只在运行的容器中保留,容器终止或重启后并不会被保存下来。也不会被 docker commit 提交。 3,由于本人使用的linux内核是2.6.32-504.3.3.el6.x86_64,不能使用网络功能。所以没有后续 4,如果需要指定容器的ip的,请先将内核升级到3.10 ; 然后使用pipework br0 879119a191a8 192.168.5.2/24@192.168.5.1 配置。
相关文章推荐
- 「二」创建一个带 ssh 服务的基础镜像(修订版)--使用 Dockerfile 创建
- docker学习笔记2—创建一个nginx的镜像,并使用浏览器访问
- 创建一个支持 sshd 服务的 docker 镜像
- 在Ubuntu 16.04上用Docker Swarm和DigitalOcean创建一个Docker容器集群的方法
- docker如何创建一个运行后台进程的容器并同时提供shell终端
- 如何创建一个有密码保护的私有Docker Registry
- docker(三):Mac docker 运行tomcat镜像创建一个容器
- Docker-创建一个mysql容器,并保存为本地镜像
- Docker-创建一个mysql容器,并保存为本地镜像
- 使用Dockerfile文件创建一个镜像,运行该镜像后并使用浏览器进行访问
- docker深入1-创建一个自己的docker image
- 如何创建一个安全的Docker基础镜像
- 一步步创建第一个Docker App —— 3. 创建一个集群Swarm
- Docker 学习笔记1—创建一个docker nginx镜像并通过浏览器访问
- 通过Mesos、Docker和Go,使用300行代码创建一个分布式系统
- 如何创建一个安全的Docker基础镜像
- docker 创建网桥
- docker 创建一个新镜像
- Docker实战之创建一个tomcat容器
- 使用Dockerfile创建一个带 ssh 服务的基础镜像