Docker教程
Docker —— 从入门到实践 简介 什么是 Docker 为什么要使用 Docker? 基本概念 Docker 镜像 Docker 容器 Docker 仓库 安装 Ubuntu 系列安装 Docker CentOS 系列安装 Docker Docker 镜像 获取镜像 列出本地镜像 创建镜像 存出和载入镜像 移除本地镜像 镜像的实现原理 Docker 容器 启动容器 后台(background)运行 终止容器 进入容器 导出和导入容器 删除容器 仓库 Docker Hub 私有仓库 仓库配置文件 Docker 数据管理 数据卷 数据卷容器 利用数据卷容器来备份、恢复、迁移数据卷 Docker 中的网络功能介绍 外部访问容器 容器互联 高级网络配置 快速配置指南 配置 DNS 容器访问控制 映射容器端口到宿主主机的实现 配置 docker0 网桥 自定义网桥 工具和示例 编辑网络配置文件 示例:创建一个点到点连接 实战案例 使用 Supervisor 来管理进程 创建 tomcat/weblogic 集群 多台物理主机之间的容器互联(暴露容器到真实网络中) 标准化开发测试和生产环境 安全 内核名字空间 控制组 Docker服务端的防护 内核能力机制 其它安全特性 总结 Dockerfile 基本结构 指令 创建镜像 底层实现 基本架构 名字空间 控制组 联合文件系统 容器格式 Docker 网络实现 Docker Compose 项目 简介 安装 使用 Compose 命令说明 YAML 模板文件 Docker Machine 项目 简介 安装 使用 Docker Swarm 项目 简介 安装 使用 swarm 调度策略 Swarm 过滤器 etcd 什么是 etcd 安装 使用 etcdctl Fig 快速搭建基于 Docker 的隔离开发环境 安装 Fig Fig客户端参考 fig.yml 参考 环境变量参考 使用 Django 入门 Fig 使用 Rail 入门 Fig 使用 Wordpress 入门 Fig CoreOS CoreOS介绍 Kubernetes 项目简介 快速上手 基本概念 kubectl 使用 基本架构 Mesos 项目 简介 Mesos + Marathon 安装与使用 Mesos 基本原理与架构 Mesos 配置项解析 Mesos 常见框架 附录一 Docker命令查询 附录二 常见仓库介绍 Ubuntu CentOS MySQL MongoDB Redis Nginx WordPress Node.js 附录三 资源链接

发布于 2015-09-22 15:29:11 | 410 次阅读 | 评论: 0 | 来源: 网络整理

Docker 默认的桥接网卡是 docker0。它只会在本机桥接所有的容器网卡,举例来说容器的虚拟网卡在主机上看一般叫做 veth* 而 Docker 只是把所有这些网卡桥接在一起,如下:

[root@opnvz ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
docker0         8000.56847afe9799       no              veth0889
                                             veth3c7b
                                             veth4061

在容器中看到的地址一般是像下面这样的地址:

root@ac6474aeb31d:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
11: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 4a:7d:68:da:09:cf brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.3/16 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::487d:68ff:feda:9cf/64 scope link
       valid_lft forever preferred_lft forever

这样就可以把这个网络看成是一个私有的网络,通过 nat 连接外网,如果要让外网连接到容器中,就需要做端口映射,即 -p 参数。

如果在企业内部应用,或者做多个物理主机的集群,可能需要将多个物理主机的容器组到一个物理网络中来,那么就需要将这个网桥桥接到我们指定的网卡上。

拓扑图

主机 A 和主机 B 的网卡一都连着物理交换机的同一个 vlan 101,这样网桥一和网桥三就相当于在同一个物理网络中了,而容器一、容器三、容器四也在同一物理网络中了,他们之间可以相互通信,而且可以跟同一 vlan 中的其他物理机器互联。 物理拓扑图

ubuntu 示例

下面以 ubuntu 为例创建多个主机的容器联网: 创建自己的网桥,编辑 /etc/network/interface 文件

auto br0
iface br0 inet static
address 192.168.7.31
netmask 255.255.240.0
gateway 192.168.7.254
bridge_ports em1
bridge_stp off
dns-nameservers 8.8.8.8 192.168.6.1

将 Docker 的默认网桥绑定到这个新建的 br0 上面,这样就将这台机器上容器绑定到 em1 这个网卡所对应的物理网络上了。

ubuntu 修改 /etc/default/docker 文件,添加最后一行内容

# Docker Upstart and SysVinit configuration file
# Customize location of Docker binary (especially for development testing).
#DOCKER="/usr/local/bin/docker"
# Use DOCKER_OPTS to modify the daemon startup options.
#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"

# If you need Docker to use an HTTP proxy, it can also be specified here.
#export http_proxy="http://127.0.0.1:3128/"

# This is also a handy place to tweak where Docker's temporary files go.
#export TMPDIR="/mnt/bigdrive/docker-tmp"

DOCKER_OPTS="-b=br0"

在启动 Docker 的时候 使用 -b 参数 将容器绑定到物理网络上。重启 Docker 服务后,再进入容器可以看到它已经绑定到你的物理网络上了。

root@ubuntudocker:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                        NAMES
58b043aa05eb        desk_hz:v1          "/startup.sh"       5 days ago          Up 2 seconds        5900/tcp, 6080/tcp, 22/tcp   yanlx
root@ubuntudocker:~# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.7e6e617c8d53       no              em1
                                            vethe6e5

这样就直接把容器暴露到物理网络上了,多台物理主机的容器也可以相互联网了。需要注意的是,这样就需要自己来保证容器的网络安全了。

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务