非常教程

Docker 17参考手册

引擎 | Engine

Debian (Engine)

要开始在 Debian 上使用 Docker CE,请确保满足先决条件,然后安装 Docker。

先决条件

Docker EE客户

Docker EE 不支持 Debian。有关不同 Docker 版本支持的操作系统和发行版的列表,请参阅 Docker 变体。

OS要求

要安装 Docker CE,您需要这些 Debian 或 Raspbian 版本的64位版本:

  • Stretch (stable)
  • Jessie 8.0 (LTS) / Raspbian Jessie
  • Wheezy 7.7 (LTS)

Docker CE 在Jessie 和 Stretch 的x86_64(或amd64)和armhf架构上都受支持。

卸载旧版本

老版本的 Docker 被称为dockerdocker-engine。如果这些已安装,请将其卸载:

$ sudo apt-get remove docker docker-engine docker.io

如果apt-get报告说没有安装这些软件包,那就行了。

/var/lib/docker/包括图像,容器,卷和网络的内容将被保留。现在调用Docker CE包docker-ce

Wheezy 7.7的额外步骤

  • 您至少需要 Linux 内核的3.10版本。Debian Wheezy 随附3.2版本,因此您可能需要更新内核。检查你的内核版本:$ uname -r
  • 启用backports存储库。请参阅Debian文档。

安装Docker CE

您可以根据您的需要以不同的方式安装Docker CE:

  • 大多数用户设置 Docker 的存储库并从中进行安装,以便安装和升级任务。这是推荐的方法。
  • 有些用户下载 DEB 软件包并手动安装,并完全手动管理升级。这对于在无法访问互联网的空隙系统上安装 Docker 等情况很有用。
  • 在测试和开发环境中,有些用户选择使用自动便利脚本来使用存储库安装 Docker.Install。首次在新主机上安装Docker CE 之前,需要设置 Docker 存储库。之后,您可以从存储库安装并更新 Docker。设置存储库
  • 更新apt包裹索引:

$ sudo apt-get update

  1. 安装软件包以允许apt通过HTTPS使用存储库: Jessie或Stretch:$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg2 \ software-properties-common Wheezy:$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ python-software-properties
  1. 添加Docker的官方GPG密钥:

$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

验证密钥ID是9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88

$ sudo apt-key指纹0EBFCD88 pub 4096R / 0EBFCD88 2017-02-22 Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid Docker发布(CE deb)docker@docker.com sub 4096R / F273FCD8 2017-02-22

  1. 使用以下命令设置稳定的存储库。即使您想从边缘测试存储库安装构建,也总是需要稳定的存储库。要添加边缘测试存储库,请在下面的命令中添加单词或(或两者)后面的单词。 :在下面的子命令返回的Debian发行版的名称,如。要还加了库,添加后在命令的最后一行。 x86_64:$ sudo add-apt-repository \“deb arch = amd64edgeteststablelsb_release -csjessieedgestablehttps://download.docker.com/linux/debian \ $(lsb_release -cs)\ stable“ armhf:$ echo”deb arch = armhf https://download.docker.com/linux/debian \ $(lsb_release - cs)stable“| \ sudo tee /etc/apt/sources.list.d/docker.list
  1. Wheezy onlyWheezy上的版本add-apt-repository添加了一个deb-src不存在的存储库。您需要注释掉此存储库或运行apt-get update将失败。编辑/etc/apt/sources.list。找到如下所示的行,并将其注释掉或删除它:

deb-src arch = amd64 https://download.docker.com/linux/debian wheezy stable

保存并退出文件。

注意:从 Docker 17.06 开始,稳定版本也被推到边缘测试版本库。

了解稳定边缘频道。

安装Docker CE

注意:在Debian for ARM上,您可以继续执行此步骤。对于Raspbian,请向下滚动以遵循其特定步骤。

  1. 更新apt软件包索引。$ sudo apt-get update
  1. 安装最新版本的 Docker CE,或转到下一步安装特定版本。任何现有的 Docker安装都会被替换。

$sudo apt-get install docker-ce

有多个 Docker 存储库?

如果启用了多个 Docker 存储库,则安装或更新时未指定版本apt-get installapt-get update命令将始终安装尽可能高的版本,这可能不适合您的稳定性需求。

  1. 在生产系统上,您应该安装特定版本的Docker CE,而不是始终使用最新版本。此输出被截断。列出可用的版本:$ apt-cache madison docker-ce docker-ce | 17.06.0〜ce-0〜debian | https://download.docker.com/linux/debian jessie / stable amd64软件包列表的内容取决于启用了哪些存储库。选择一个特定的版本进行安装。第二列是版本字符串。第三列是存储库名称,它指示软件包来自哪个存储库并且通过扩展其稳定性级别。要安装特定版本,请将版本字符串附加到包名称,并用等号(=)将它们分开:$ sudo apt-get install docker-ce = <VERSION_STRING> Docker守护进程自动启动。
  1. 通过运行hello-world映像验证是否正确安装了Docker CE 。

x86_64

$ sudo docker run hello-world

armhf

$ sudo docker run armhf / hello-world

该命令下载测试图像并将其运行到容器中。当容器运行时,它会打印一条信息消息并退出。

Docker CE 已安装并正在运行。您需要使用sudo运行 Docker 命令。继续 Linux postinstall 以允许非特权用户运行 Docker 命令以及其他可选配置步骤。

升级Docker CE

要升级 Docker CE,请先运行sudo apt-get update,然后按照安装说明进行操作,然后选择要安装的新版本。

Install on Raspbian (Raspberry Pi)

注意:如果您使用推荐的$ curl -sSL https://get.docker.com | sh命令,则这不是必需的。

一旦你添加了Docker仓库/etc/apt/sources.list.d/,你应该看看docker.list你是否:

$ ls /etc/apt/sources.list.d/

该内容docker.list应该是:

deb [arch=armhf] https://apt.dockerproject.org/repo raspbian-jessie main

如果你没有看到,在docker.list,那么无论注释行了,或者rmdocker.list文件。

一旦你确认你有正确的存储库,你可以继续安装Docker。

  1. 更新apt软件包索引。$ sudo apt-get update
  1. 安装最新版本的 Docker CE,或转到下一步安装特定版本。任何现有的 Docker CE 安装都将被替换。

使用此命令安装最新版本的 Docker:

$ sudo apt-get install docker-engine

注意:默认情况下,Raspbian上的Docker是Docker Community Edition。

注意:如果curl -sSL https://get.docker.com | sh没有使用,docker将不会自动完成!你必须手动添加它。

  1. 通过运行hello-world映像验证是否正确安装了Docker CE 。$ sudo docker运行hypriot / armhf-hello-world这个命令下载一个测试图像并在一个容器中运行它。当容器运行时,它会打印一条信息消息并退出。(可选)为Raspbian安装Docker Compose Hypriot为Raspbian 提供了一个静态二进制文件docker-compose。要使用它,首先遵循Hypriot 关于设置存储库的说明,然后运行以下命令:sudo apt-get install从软件包中执行docker-composeInstall如果不能使用Docker的存储库来安装Docker CE,则可以下载.deb文件以供发布,手动安装。每次要升级Docker时,都需要下载一个新文件。
  1. 转到https://download.docker.com/linux/debian/dists/,选择您的 Debian 版本,浏览到pool/stable/,选择amd64或者armhf,然后下载.deb您想要安装的Docker CE版本的文件。

注意:要安装边缘软件包,stable请将 URL 中的单词更改为edge。了解稳定边缘频道。

  1. 安装 Docker CE,将下面的路径更改为您下载 Docker 软件包的路径。$ sudo dpkg -i /path/to/package.deb Docker 守护进程自动启动。
  1. 通过运行hello-world映像验证是否正确安装了Docker CE 。

$ sudo docker run hello-world

该命令下载测试图像并将其运行到容器中。当容器运行时,它会打印一条信息消息并退出。

Docker CE 已安装并正在运行。您需要使用sudo运行 Docker 命令。继续进行 Linux 的安装后步骤,以允许非特权用户运行Docker 命令以及其他可选配置步骤。

升级Docker CE

要升级 Docker,请下载较新的软件包文件并重复安装过程,指向新文件。

使用便捷脚本进行安装

Docker 在 get.docker.com 和 test.docker.com上提供了便捷脚本,用于将 Docker CE 的稳定版和测试版快速且非交互地安装到开发环境中。脚本的源代码位于docker-install存储库中。不建议在生产环境中使用这些脚本,并且在使用它们之前应了解其潜在风险:

  • 脚本需要rootsudo权限才能运行。因此,在运行脚本之前,应仔细检查和审核脚本。
  • 这些脚本会尝试检测您的 Linux 发行版和版本,并为您配置您的软件包管理系统。另外,这些脚本不允许您自定义任何安装参数。这可能会导致不支持的配置,无论是从 Docker 的角度还是从您自己的组织准则和标准。
  • 这些脚本会安装包管理器的所有依赖关系和建议,而不要求确认。这可能会安装大量的包,具体取决于主机的当前配置。
  • 如果 Docker 已经使用其他机制安装在主机上,请不要使用便捷脚本。

本示例使用 get.docker.com 上的脚本在 Linux 上安装 Docker CE 的最新稳定版本。要安装最新的测试版本,请改用test.docker.com。在下面的每个命令,取代每次出现gettest

警告:在本地运行之前,始终检查从互联网上下载的脚本。

$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

<output truncated>

If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:

  sudo usermod -aG docker your-user

Remember that you will have to log out and back in for this to take effect!

WARNING: Adding a user to the "docker" group will grant the ability to run
         containers which can be used to obtain root privileges on the
         docker host.
         Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
         for more information.

Docker CE 已安装。它会自动启动DEB基于目录的分发。在RPM基于分布的情况下,您需要使用适当systemctlservice命令手动启动它。如消息所示,非 root 用户默认情况下无法运行 Docker 命令。

在使用便利脚本后升级 Docker

如果您使用便捷脚本安装 Docker,则应直接使用软件包管理器升级 Docker。重新运行便捷脚本没有任何优势,如果它试图重新添加已添加到主机的存储库,则会产生问题。

卸载Docker CE

  1. 卸载Docker CE软件包:$ sudo apt-get purge docker-ce
  1. 不会自动删除主机上的图像,容器,卷或自定义配置文件。删除所有图像,容器和卷:

$sudo rm-RF/var/lib/docker

您必须手动删除任何已编辑的配置文件。

下一步

  • 继续进行Linux的安装后步骤
  • 继续使用用户指南。

需求,apt,安装,debian,安装,卸载,升级,更新

根据ApacheLicense,版本2.0获得许可。

引擎 | 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.默认桥接网络 | 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