非常教程

Docker 17参考手册

引擎 | Engine

设置教程(引擎) | Set up for the tutorial (Engine)

本教程将向您介绍Docker Engine Swarm模式的功能。在开始之前,您可能想熟悉一下关键概念。

本教程将指导您完成以下活动:

  • 以群集模式初始化Docker引擎群集
  • 向群中添加节点
  • 将应用服务部署到群中
  • 一旦你运行了全部,管理群

本教程使用在终端窗口的命令行中输入的Docker Engine CLI命令。您应该能够在网络机器上安装Docker,并且能够在您选择的外壳中运行命令。

如果您是Docker的全新用户,请参阅关于Docker Engine。

设置

要运行本教程,您需要以下内容:

  • 安装了Docker的三台Linux主机,它们可以通过网络进行通信
  • Docker引擎1.12或更高版本安装
  • 管理器机器的IP地址
  • 打开主机之间的端口

三台联网主机

本教程需要三台安装了Docker并可通过网络进行通信的Linux主机。这些可以是物理机器,虚拟机,Amazon EC2实例或以其他方式托管。您甚至可以使用Linux,Mac或Windows主机上的Docker Machine。检查入门 - Swarms为主机设置一个可能的设置。

其中一台机器将成为经理(称为manager1),其中两人将成为工人(worker1worker2)。

注意:您也可以按照许多教程步骤来测试单节点群,在这种情况下,您只需要一台主机。多节点命令不起作用,但您可以初始化群集,创建服务并对其进行扩展。

Docker引擎1.12或更新版本

本教程需要在每台主机上安装Docker Engine 1.12或更高版本。安装Docker Engine并验证Docker Engine守护进程正在每台机器上运行。您可以按照以下方式获取最新版本的Docker Engine:

  • 在Linux机器上安装Docker引擎
  • Mac使用Docker或Windows使用Docker

在Linux机器上安装Docker引擎

如果您使用基于Linux的物理计算机或云提供的计算机作为主机,只需按照适用于您的平台的Linux安装说明进行操作即可。旋转三台机器,你就准备好了。您可以在Linux机器上测试单节点和多节点swarm场景。

Mac使用Docker或Windows使用Docker

或者,在一台计算机上安装最新的Docker for Mac或Docker for Windows应用程序。您可以从这台计算机上测试单节点和多节点群集,但是您需要使用Docker Machine来测试多节点场景。

  • 您可以使用Docker for Mac或Windows来测试群集模式的单节点功能,包括使用单节点初始化群集,创建服务以及扩展服务。Hyperkit(Mac)或Hyper-V(Windows)上的Docker“Moby”将作为单个群集节点。
  • 目前,您无法单独使用Docker for Mac或Windows来测试多节点群。但是,您可以使用随附的Docker Machine版本创建swarm节点(请参阅Docker Machine入门和本地VM),然后按照教程了解所有多节点功能。对于这种情况,您从一个码头工人的Mac或码头的Windows主机的命令,但码头工人主机本身参与群(即,它不会manager1worker1worker2在我们的例子)。创建节点后,可以运行Mac终端或Windows PowerShell中显示的所有swarm命令,其中Docker for Mac或Docker for Windows正在运行。

管理机的IP地址

IP地址必须分配给主机操作系统可用的网络接口。群中的所有节点必须能够通过IP地址访问管理器。

由于其他节点通过其IP地址联系管理器节点,因此应使用固定的IP地址。

您可以ifconfig在Linux或macOS上运行以查看可用网络接口的列表。

如果您使用的是Docker Machine,则可以使用docker-machine ls或者docker-machine ip <MACHINE-NAME>- 例如,来获取管理器IP docker-machine ip manager1

本教程使用manager1192.168.99.100

在主机之间打开协议和端口

以下端口必须可用。在某些系统上,这些端口默认打开。

  • TCP端口2377用于集群管理通信
  • tcpUDP端口7946用于节点间的通信
  • UDP端口4789用于覆盖网络流量

如果您计划使用encryption(--opt encrypted)创建覆盖网络,则还需要确保允许ip协议50ESP)通信。

接下来是什么?

设置完环境后,即可创建群集。

教程,集群管理,群集模式

引擎 | 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.自定义docker0网桥(引擎) | Customize the docker0 bridge (Engine)
20.Debian (Engine)
21.默认桥接网络 | Default bridge network
22.删除服务(引擎) | Delete the service (Engine)
23.部署服务(引擎) | Deploy a service (Engine)
24.将服务部署到一个群(引擎) | Deploy services to a swarm (Engine)
25.不推荐的引擎功能 | Deprecated Engine features
26.Docker容器网络(引擎) | Docker container networking (Engine)
27.Docker概述(引擎) | Docker overview (Engine)
28.Docker运行参考(引擎) | Docker run reference (Engine)
29.Dockerfile引用(引擎) | Dockerfile reference (Engine)
30.Dockerize应用程序 | Dockerize an application
31.排空节点(引擎) | Drain a node (Engine)
32.引擎 | Engine
33.FAQ(引擎) | FAQ (Engine)
34.Fedora (Engine)
35.开始 | Get started (Engine)
36.开始使用macvlan网络驱动程序 | Get started with macvlan network driver (Engine)
37.开始使用多主机网络 | Get started with multi-host networking (Engine)
38.节点如何工作 | How nodes work (Engine)
39.服务如何运作(引擎) | How services work (Engine)
40.图像管理 | Image management (Engine)
41.检查服务(引擎) | Inspect the service (Engine)
42.安装Docker(引擎) | Install Docker (Engine)
43.IPv6与Docker(引擎) | IPv6 with Docker (Engine)
44.将节点加入群集(引擎) | Join nodes to a swarm (Engine)
45.旧容器链接(引擎) | Legacy container links (Engine)
46.锁定你的群(引擎) | Lock your swarm (Engine)
47.管理群中的节点(引擎) | Manage nodes in a swarm (Engine)
48.使用Docker机密管理敏感数据(引擎) | Manage sensitive data with Docker secrets (Engine)
49.使用PKI管理swarm安全性(引擎) | Manage swarm security with PKI (Engine)
50.管理群体服务网络(引擎) | Manage swarm service networks (Engine)
51.迁移到引擎1.10 | Migrate to Engine 1.10
52.可选的Linux安装后步骤(引擎) | Optional Linux post-installation steps (Engine)
53.总览 | Overview (Engine)
54.总览 | Overview (Engine)
55.PostgreSQL(引擎) | PostgreSQL (Engine)
56.群集模式中的筏共识(引擎) | Raft consensus in swarm mode (Engine)
57.Riak (Engine)
58.以群集模式运行Docker Engine | Run Docker Engine in swarm mode
59.扩展服务(引擎) | Scale the service (Engine)
60.SDKs (Engine)
61.选择一个存储驱动 | Select a storage driver (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