非常教程

Docker 17参考手册

引擎 | Engine

自定义docker0网桥(引擎) | Customize the docker0 bridge (Engine)

本节中的信息解释如何自定义 Docker 默认桥。这是一个bridge网络名bridge安装 Docker 时自动创建。

注意:通过 Docker 网络功能,您可以创建除默认网桥以外的用户定义网络。

默认情况下,Docker 服务器创建并配置主机系统的docker0一个称为的网络接口docker0,它是一个以太网桥设备。如果您在启动容器时未指定其他网络,则容器将连接到网桥,并且来自和去往容器的所有流量都会通过网桥流向 Docker 守护程序, Docker 守护程序将代表容器处理路由。

Docker docker0使用 IP 地址,网络掩码和 IP 分配范围进行配置。连接到默认网桥的容器在此范围内分配 IP 地址。某些默认设置适用于默认网桥,除非您另行指定。例如,默认的最大传输单元(MTU)或容器允许的最大数据包长度默认为1500字节。

您可以使用该dockerd命令的标志来配置默认桥接网络的设置。但是,配置 Docker 守护进程的推荐方式是使用daemon.json位于/etc/docker/Linux上的文件。如果该文件不存在,请创建它。您可以指定一个或多个以下设置来配置默认桥接网络:

{
  "bip": "192.168.1.5/24",
  "fixed-cidr": "10.20.0.0/16",
  "fixed-cidr-v6": "2001:db8::/64",
  "mtu": 1500,
  "default-gateway": "10.20.1.1",
  "default-gateway-v6": "2001:db8:abcd::89",
  "dns": ["10.20.1.2","10.20.1.3"]
}

在对daemon.json文件进行更改后重新启动 Docker 。

相同的选项作为标志显示dockerd,并分别给出解释:

  • --bip=CIDRdocker0使用标准 CIDR 表示法为桥提供特定的IP地址和网络掩码。例如:192.168.1.5/24
  • --fixed-cidr=CIDR并且--fixed-cidr-v6=CIDRv6docker0使用标准的 CIDR 表示法来限制子网的IP范围。例如:172.16.1.0/28。此范围必须是固定IP的IPv4范围10.20.0.0/16,并且必须是网桥 IP 范围的子集(docker0或使用set --bridge)。例如,--fixed-cidr=192.168.1.0/25对于您的容器,将从192.168.1.0/24子网中包含的前半部分地址中选择 IP。
  • --mtu=BYTES:覆盖最大数据包长度docker0
  • --default-gateway=Container default Gateway IPV4 address--default-gateway-v6=Container default gateway IPV6 address:指定连接到docker0网桥的容器的默认网关,默认网关控制它们在哪里路由流量。适用于使用--bip--fixed-cidr标志设置的地址。例如,你可以配置--fixed-cidr=172.17.2.0/24default-gateway=172.17.1.1
  • --dns=[]:要使用的 DNS 服务器。例如:--dns=172.17.2.10

一旦启动并运行了一个或多个容器,您可以docker0通过brctl在主机上运行命令并查看interfaces输出的列来确认Docker 已将其正确连接到网桥。此示例显示了docker0连接了两个容器的桥:

$ sudo brctl show

bridge name     bridge id               STP enabled     interfaces
docker0         8000.3a1d7362b4ee       no              veth65f9
                                                        vethdda6

如果该brctl命令未安装在您的 Docker 主机上,那么在 Ubuntu 上您应该可以运行sudo apt-get install bridge-utils以安装它。

最后,docker0每次创建新容器时都会使用以太网网桥设置。每次你docker run新建一个容器时,Docker 会从桥上可用的范围中选择一个空闲的 IP 地址,并eth0用该 IP 地址和网桥的网络掩码来配置容器的接口。桥上的 Docker 主机自己的IP地址被用作每个容器到达 Internet 其余部分的默认网关。

# The network, as seen from a container

$ docker run --rm -it alpine /bin/ash

root@f38c87f2a42d:/# ip addr show eth0

24: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 32:6f:e0:35:57:91 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.3/16 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::306f:e0ff:fe35:5791/64 scope link
       valid_lft forever preferred_lft forever

root@f38c87f2a42d:/# ip route

default via 172.17.42.1 dev eth0
172.17.0.0/16 dev eth0  proto kernel  scope link  src 172.17.0.3

root@f38c87f2a42d:/# exit

请记住,Docker 主机不会愿意将容器数据包转发到 Internet 上,除非其ip_forward系统设置为1- 请参阅与外部通信以了解详细信息的部分。

码头工人,桥梁,码头工人,网络

引擎 | Engine相关

1..NET核心应用程序(引擎) | .NET Core application (Engine)
2.关于图像,容器和存储驱动程序(引擎) | About images, containers, and storage drivers (Engine)
3.向swarm添加节点(Engine) | Add nodes to the swarm (Engine)
4.应用自定义元数据(引擎) | Apply custom metadata (Engine)
5.应用滚动更新(引擎) | Apply rolling updates (Engine)
6.apt-cacher-ng
7.编写Dockerfiles(引擎)的最佳实践 | Best practices for writing Dockerfiles (Engine)
8.二进制(引擎) | Binaries (Engine)
9.将容器端口绑定到主机(引擎) | Bind container ports to the host (Engine)
10.突破性变化(引擎) | Breaking changes (Engine)
11.建立自己的网桥 | Build your own bridge (Engine)
12.CentOS (Engine)
13.CentOS (Engine)
14.配置容器DNS(引擎) | Configure container DNS (Engine)
15.在用户定义的网络中配置容器DNS(引擎) | Configure container DNS in user-defined networks (Engine)
16.CouchDB (Engine)
17.创建基本映像(引擎) | Create a base image (Engine)
18.创建群(引擎) | Create a swarm (Engine)
19.Debian (Engine)
20.默认桥接网络 | Default bridge network
21.删除服务(引擎) | Delete the service (Engine)
22.部署服务(引擎) | Deploy a service (Engine)
23.将服务部署到一个群(引擎) | Deploy services to a swarm (Engine)
24.不推荐的引擎功能 | Deprecated Engine features
25.Docker容器网络(引擎) | Docker container networking (Engine)
26.Docker概述(引擎) | Docker overview (Engine)
27.Docker运行参考(引擎) | Docker run reference (Engine)
28.Dockerfile引用(引擎) | Dockerfile reference (Engine)
29.Dockerize应用程序 | Dockerize an application
30.排空节点(引擎) | Drain a node (Engine)
31.引擎 | Engine
32.FAQ(引擎) | FAQ (Engine)
33.Fedora (Engine)
34.开始 | Get started (Engine)
35.开始使用macvlan网络驱动程序 | Get started with macvlan network driver (Engine)
36.开始使用多主机网络 | Get started with multi-host networking (Engine)
37.节点如何工作 | How nodes work (Engine)
38.服务如何运作(引擎) | How services work (Engine)
39.图像管理 | Image management (Engine)
40.检查服务(引擎) | Inspect the service (Engine)
41.安装Docker(引擎) | Install Docker (Engine)
42.IPv6与Docker(引擎) | IPv6 with Docker (Engine)
43.将节点加入群集(引擎) | Join nodes to a swarm (Engine)
44.旧容器链接(引擎) | Legacy container links (Engine)
45.锁定你的群(引擎) | Lock your swarm (Engine)
46.管理群中的节点(引擎) | Manage nodes in a swarm (Engine)
47.使用Docker机密管理敏感数据(引擎) | Manage sensitive data with Docker secrets (Engine)
48.使用PKI管理swarm安全性(引擎) | Manage swarm security with PKI (Engine)
49.管理群体服务网络(引擎) | Manage swarm service networks (Engine)
50.迁移到引擎1.10 | Migrate to Engine 1.10
51.可选的Linux安装后步骤(引擎) | Optional Linux post-installation steps (Engine)
52.总览 | Overview (Engine)
53.总览 | Overview (Engine)
54.PostgreSQL(引擎) | PostgreSQL (Engine)
55.群集模式中的筏共识(引擎) | Raft consensus in swarm mode (Engine)
56.Riak (Engine)
57.以群集模式运行Docker Engine | Run Docker Engine in swarm mode
58.扩展服务(引擎) | Scale the service (Engine)
59.SDKs (Engine)
60.选择一个存储驱动 | Select a storage driver (Engine)
61.设置教程(引擎) | Set up for the tutorial (Engine)
62.SSHd (Engine)
63.存储驱动总览 | Storage driver overview (Engine)
64.存储服务配置数据(引擎) | Store service configuration data (Engine)
65.Swarm管理指南(引擎) | Swarm administration guide (Engine)
66.Swarm模式关键概念(引擎) | Swarm mode key concepts (Engine)
67.Swarm模式覆盖网络安全模型(引擎) | Swarm mode overlay network security model (Engine)
68.群模式概述(引擎) | Swarm mode overview (Engine)
69.Ubuntu (Engine)
70.Ubuntu (Engine)
71.了解容器通信(引擎) | Understand container communication (Engine)
72.使用多阶段构建(引擎) | Use multi-stage builds (Engine)
73.使用swarm模式路由网格(引擎) | Use swarm mode routing mesh (Engine)
74.使用AUFS存储驱动程序(引擎) | Use the AUFS storage driver (Engine)
75.使用Btrfs存储驱动程序(引擎) | Use the Btrfs storage driver (Engine)
76.使用设备映射器存储驱动程序(引擎) | Use the Device mapper storage driver (Engine)
77.使用OverlayFS存储驱动程序(引擎) | Use the OverlayFS storage driver (Engine)
78.使用VFS存储驱动程序(引擎) | Use the VFS storage driver (Engine)
79.使用ZFS存储驱动程序(引擎) | Use the ZFS storage driver (Engine)
80.处理图像 | Work with images
81.使用网络命令(引擎) | Work with network commands (Engine)
Docker 17

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

主页 https://docker.com/
源码 https://github.com/docker/docker
版本 17
发布版本 17.06