Docker Engine 早期版本

目录

1.13.1 (2017-02-08)

重要

在默认存储驱动程序所在的 Linux 发行版上,现在默认使用 , 或 (如果内核支持)。要使用 devicemapper,您可以通过 daemon 选项手动配置要使用的存储驱动程序,或者在配置文件中设置 “storage-driver”。devicemapperoverlay2overlay--storage-driverdaemon.json

重要

与 Docker 1.12 中引入的实验版本相比,Docker 1.13 中的托管插件 API 发生了变化。在升级到 Docker 1.13 之前,您必须卸载使用 Docker 1.12 安装的插件。您可以使用该命令卸载插件。docker plugin rm

如果您已经升级到 Docker 1.13 但未卸载 之前安装的插件,当 Docker 守护程序 开始:

Error starting daemon: json: cannot unmarshal string into Go value of type types.PluginEnv

要手动删除所有插件并解决此问题,请执行以下步骤:

  1. 从 中删除 plugins.json: 。/var/lib/docker/plugins/
  2. 重新启动 Docker。验证 Docker 守护程序是否启动且没有错误。
  3. 重新安装您的插件。

贡献

远程API (v1.26) & 客户端

  • 使用 compose 文件在 docker stack deploy 中支持 secret #30144

运行

  • 修复 #30378 中的大小问题docker system df
  • 修复 Swarm 证书过期时的错误。#29246docker inspect
  • 修复 v1 插件死锁,激活错误 #30408
  • 修复 SELinux 回归 #30649

插件

  • 在 swarm 模式下支持全局范围的网络插件 (v2) #30332
  • 添加 #29414docker plugin upgrade

窗户

  • 修复 Windows 中旧插件的小回归 #30150
  • 修复 Windows 上的警告 #30730

1.13.0 (2017-01-18)

重要

在默认存储驱动程序所在的 Linux 发行版上,现在默认使用 , 或 (如果内核支持)。要使用 devicemapper,您可以通过 daemon 选项手动配置要使用的存储驱动程序,或者在配置文件中设置 “storage-driver”。devicemapperoverlay2overlay--storage-driverdaemon.json

重要

与 Docker 1.12 中引入的实验版本相比,Docker 1.13 中的托管插件 API 发生了变化。在升级到 Docker 1.13 之前,您必须卸载使用 Docker 1.12 安装的插件。您可以使用该命令卸载插件。docker plugin rm

如果您已经升级到 Docker 1.13 但未卸载 之前安装的插件,当 Docker 守护程序 开始:

Error starting daemon: json: cannot unmarshal string into Go value of type types.PluginEnv

要手动删除所有插件并解决此问题,请执行以下步骤:

  1. 从 中删除 plugins.json: 。/var/lib/docker/plugins/
  2. 重新启动 Docker。验证 Docker 守护程序是否启动且没有错误。
  3. 重新安装您的插件。

建筑工人

  • 添加了在构建时指定用作缓存源的镜像的功能。这些镜像不需要有本地父链,可以从其他 registry 拉取 #26839
  • (实验性)在成功构建后添加将镜像图层压缩到 FROM 镜像的选项 #22641
  • #24978 上添加步骤编号docker build
  • 添加对在镜像构建期间压缩构建上下文的支持 #25837
  • 添加到 #27702--networkdocker build
  • 修复 flag on 和 #26027 之间的不一致行为--labeldocker builddocker run
  • 修复使用 overlay 存储驱动程序时镜像图层不一致的问题 #27209
  • 现在允许使用未使用的 build-args。显示警告,而不是错误和失败的内部版本 #27412
  • 修复 Windows 上的 builder 缓存问题 #27805
  • 在 Windows 上的 Builder 中允许 #28415USER
  • 在 Windows 上处理不区分大小写的 env #28725

贡献

  • 添加对在 PPC64LE 上为 Ubuntu 16.04 Xenial 构建 docker debs 的支持 #23438
  • 支持在 s390x 上为 Ubuntu 16.04 Xenial 构建 docker debs #26104
  • 添加对为 Ubuntu 16.10 Yakkety Yak on PPC64LE 构建 docker debs 的支持 #28046
  • 为 VMWare Photon OS 添加 RPM 构建器 #24116
  • 为 tgz 添加 shell 补全 #27735
  • 更新安装脚本以允许在中国使用镜像 #27005
  • 新增 Ubuntu 16.10 Yakkety Yak 的 DEB builder #27993
  • 为 Fedora 25 添加 RPM 构建器 #28222
  • 新增对 aarch64 的支持 #27625make deb

分配

  • 将 notary 依赖项更新到 0.4.2 (完整的更新日志在这里#27074
    • 支持在 Windows docker/notary 上编译#970
    • 改进了客户端身份验证错误的错误消息 docker/notary#972
    • 支持查找目录中任意位置的键,而不仅仅是在 docker/notary 下#981~/.docker/trust/private~/.docker/trust/private/root_keys~/.docker/trust/private/tuf_keys
    • 以前,在更新任何错误时,客户端都会回退到缓存上。现在,我们只在出现网络错误、服务器不可用或缺少 TUF 数据时才这样做。无效的 TUF 数据将导致更新失败 - 例如,如果存在无效的根旋转。Docker/公证人 #982
    • 改进 root 验证和 yubikey 调试日志记录 docker/notary#858 docker/notary#891
    • 如果 root 或 delegation 的证书即将过期,则发出警告 docker/notary#802
    • 如果角色元数据即将过期,则发出警告 docker/notary#786
    • 修复 passphrase 检索尝试计数和终端检测 docker/notary#906
  • 当不同的用户将相同的层推送到经过身份验证的注册表时,避免不必要的 blob 上传 #26564
  • 允许对 registry 凭证进行外部存储 #26354

伐木

  • 标准化所有 logging 驱动程序中的默认 logging tag 值 #22911
  • 提高记录长日志行时的性能和内存使用率 #22982
  • 为 Windows 启用 syslog 驱动程序 #25736
  • 新增 Logentries 驱动 #27471
  • 更新 AWS 日志驱动程序以支持标签 #27707
  • fluentd 的 Unix 套接字支持 #26088
  • 在 Windows 上启用 fluentd 日志记录驱动程序 #28189
  • 清理 docker 标签用作 journald 字段名称时 #23725
  • 修复返回行数少于预期的问题 #28203docker logs --tail
  • Splunk Logging Driver:性能和可靠性改进 #26207
  • Splunk Logging Driver:可配置的格式和跳过,用于验证连接 #25786

联网

  • 新增网络支持,使其能够在 swarm 模式 overlay 网络中工作 #25962--attachabledocker run
  • 使用 #27917#28943 中的选项在服务中添加对主机端口 PublishMode 的支持--publishdocker service create
  • 添加对 Windows Server 2016 覆盖网络驱动程序的支持(需要即将推出的 ws2016 更新)#28182
  • 将默认策略更改为 #28257FORWARDDROP
  • 新增支持在 Windows 上为预定义网络指定静态 IP 地址 #22208
  • 修复 IPv6 地址无法正常工作的标志 #27860--publishdocker run
  • 修复使用掩码检查 network show gateway 的问题 #25564
  • 修复 bridge 中多个地址可能导致地址不正确的问题 #26659--fixed-cidr
  • #26130 添加创建时间戳docker network inspect
  • 在 swarm overlay 网络中显示对等节点 #28078docker network inspect
  • 为服务 VIP 地址启用 ping #28019

插件

  • 将插件从实验性 #28226 中移出
  • 新增 #25096--forcedocker plugin remove
  • 新增支持动态重新加载授权插件 #22770
  • #25556 中添加描述docker plugin ls
  • 添加 / 到 #25990-f--formatdocker plugin inspect
  • 新增命令 #28164docker plugin create
  • 将请求的 TLS 对等证书发送到授权插件 #27383
  • 在 swarm 模式下支持全局范围的网络和 ipam 插件 #27287
  • 拆分为两个 API 调用和 #28963docker plugin install/privileges/pull

远程 API (v1.25) & 客户端

  • 来自 Compose 文件的支持 #27998docker stack deploy
  • (实验性)实现 checkpoint 并恢复 #22049
  • #23808 添加标志--formatdocker info
  • #23830 中删除--namedocker volume create
  • 新增 #23886docker stack ls
  • 添加新的 ps 过滤器 #24411is-task
  • #24844 添加标志--env-filedocker service create
  • 添加 #24987--formatdocker stats
  • 在 swarm 节点中设为 default to #25214docker node psself
  • 添加 #25317--groupdocker service create
  • 添加到 service/node/stack ps 输出 #25337--no-trunc
  • Add Logs to so go 客户端可以在 attach 过程中请求检索容器日志 #26718ContainerAttachOptions
  • 允许客户端与较旧的服务器通信 #27745
  • 通知用户客户端正在进行容器移除 #26074
  • 添加到 /info 端点 #26255Isolation
  • 添加到 /info 端点 #27840userns
  • 不允许在服务端点中一次请求多个模式 #26643
  • 在 /containers/create API 中新增功能,以更精细、更安全的方式指定挂载 #22373
  • 为 和 添加标志 #23475--formatnetwork lsvolume ls
  • 允许 top-level 命令检查任何类型的资源 #23614docker inspect
  • 新增 --cpus 标志来控制 和 的 cpu 资源,并新增至 #27958docker rundocker createNanoCPUsHostConfig
  • 允许取消设置 in 或 #23718--entrypointdocker rundocker create
  • 通过添加 and 命令来构建 CLI 命令以提高一致性 #26025docker imagedocker container
  • 从输出中删除列 #28029COMMANDservice ls
  • 添加到 #26268--formatdocker events
  • 允许在 #26299 上指定多个节点docker node ps
  • 在输出中将小数限制为 2 位小数 #26303docker images
  • 添加到 #28186--dns-optiondocker run
  • 为容器提交事件添加 Image ID #28128
  • 为 docker info 添加外部二进制文件版本 #27955
  • #28042 的输出中增加信息Manager Addressesdocker info
  • #27872 添加新的引用过滤器docker images

运行

  • 添加守护进程标志以启用实验性功能,而不是将它们发布在单独的版本中 #27223--experimental
  • 添加守护进程标志以指定默认超时时间(以秒为单位),以便在守护进程退出之前正常停止容器 #23036--shutdown-timeout
  • Add 指定单个容器停止的超时值(以秒为单位) #22566--stop-timeout
  • 添加新的守护进程标志以允许配置用户空间代理,而不是使用硬编码的 #26882--userland-proxy-pathdocker-proxy$PATH
  • 添加布尔标志 on 和 on,以将僵尸收割 init 进程 tini 用作 PID 1 #26061 #28037--initdockerddocker run
  • 添加新的守护进程标志以允许配置二进制文件的路径 #26941--init-pathdocker-init
  • 在配置中新增对实时重新加载不安全 registry 的支持 #22337
  • 在 Windows 守护进程上添加对 storage-opt 大小的支持 #23391
  • 通过将 客户端移动到守护进程来提高可靠性 #20848docker run --rm
  • 新增对 and flags 的支持,允许容器在内核中启用时运行实时线程 #23430--cpu-rt-period--cpu-rt-runtimeCONFIG_RT_GROUP_SCHED
  • 允许并行停止、暂停、取消暂停 #24761 / #26778
  • 为 overlay2 实施 XFS 配额 #24771
  • 修复 partial/full filter 中的问题 #24850service tasks --filter
  • 允许引擎在用户命名空间内运行 #25672
  • 修复使用 devicemapper graphdriver 时 device deferred removal 和 resume device 之间的竞争条件 #23497
  • 在 Windows 中添加支持 #25737docker stats
  • 允许使用 和 when #25771--pid=host--net=host--userns=host
  • (实验性)为基本 、 和 operations 添加 metrics (Prometheus) 输出 #25820containerimagedaemon
  • 修复 #25905 中的问题docker statsNetworkDisabled=true
  • 在 Windows 中添加支持 #25891docker top
  • 执行进程的记录 pid #27470
  • 通过 #27599 添加对查找用户/组的支持getent
  • 新增 with 命令 和 子命令,用于系统资源管理,以及子命令 #26108 #27525 / #27525docker systemdfprunedocker {container,image,volume,network} prune
  • 修复了在 ENOSPC 上使用 devicemapper 将 xfs max_retries 设置为 0 时无法停止或终止容器的问题 #26212
  • 修复在 CentOS 上使用 devicemapper 无法复制到容器的 volume 目录的问题 #28047docker cp
  • 提升 overlay(2) graphdriver #27932
  • 新增 daemon 标志以指定覆盖默认 seccomp 配置文件的路径 #26276--seccomp-profile
  • 修复 daemon 设置 when 的 ulimits 问题 #26405docker inspect--default-ulimit
  • 为在旧内核中构建期间的 overlay 问题添加解决方法 #28138
  • #26461 上添加环境变量TERMdocker exec -t
  • 遵循容器的设置 #26464--stop-signaldocker kill

群模式

  • 新增 secret 管理 #27794
  • 新增对模板服务选项(hostname、mounts 和环境变量)的支持 #28025
  • #26906 的输出中显示 endpoint 模式docker service inspect --pretty
  • 通过缩短任务名称中的服务 ID 使输出更易于忍受 #28088docker service ps
  • 将 default 设置为当前节点 #25214docker node ps
  • 将 、 - 和 添加到 service create 中。#27567--dns-dns-opt--dns-search
  • 添加到 #27596--forcedocker service update
  • 添加 and flags 到 和 #27369--health-*--no-healthcheckdocker service createdocker service update
  • 添加到 #27654-qdocker service ps
  • 显示 #27710 中的全球服务数量docker service ls
  • 从 中删除标志。此标志仅在 上起作用,因此已从命令 #26988 中删除--namedocker service updatedocker service createupdate
  • 修复因暂时性网络问题导致 Worker 节点无法恢复的问题 #26646
  • 添加对健康感知负载均衡和 DNS 记录的支持 #27279
  • 添加到 #27857--hostnamedocker service create
  • 添加到 、 和 、 到 #28031--hostdocker service create--host-add--host-rmdocker service update
  • 为 / 添加标志 #28076--ttydocker service createupdate
  • 自动检测、存储和公开管理器看到的节点 IP 地址 #27910
  • 对 Manager Key 和 Raft 数据进行静态加密 #27967
  • 新增 、 和 flags 到 #26421--update-max-failure-ratio--update-monitor--rollbackdocker service update
  • 修复在容器内运行时地址自动发现的问题 #26457docker swarm init
  • (实验性)新增查看服务日志的命令 #28089docker service logs
  • 按 digest for 和 #28173 固定镜像docker service createupdate
  • 为 和 添加短 () 标志 #28196-fdocker node rm --forcedocker swarm leave --force
  • 新增自定义 Raft 快照的选项 (, ) #27997--max-snapshots--snapshot-interval
  • 如果被 digest 固定,则不要重新拉取镜像 #28265
  • Windows 的 Swarm 模式支持 #27838
  • 允许在服务上更新主机名 #28771
  • 支持 v2 插件 #29433
  • 为服务添加内容信任 #29469

  • 添加对卷上标签的支持 #21270
  • 新增支持按标签过滤卷 #25628
  • 在 中添加 flag 以强制清除已删除的 volume 的数据 #23436--forcedocker volume rm
  • Enhance 显示创建卷时使用的所有选项 #26671docker volume inspect
  • 添加对本地 NFS 卷的支持以解析主机名 #27329

安全

  • 修复容器中共享的 Volumes 的 selinux 标签 #23024
  • 禁止使用 apparmor 访问 #26618/sys/firmware/**

折旧

  • 将命令标记为已弃用。守护进程已移至单独的二进制文件 (),应改用 #26834docker daemondockerd
  • 弃用未受版本控制的 API 端点 #28208
  • 删除 Ubuntu 15.10 (Wily Werewolf) 作为支持的平台。Ubuntu 15.10 已停产,不再接收更新 #27042
  • 删除 Fedora 22 作为支持的平台。Fedora 22 已停产,不再接收更新 #27432
  • 删除 Fedora 23 作为支持的平台。Fedora 23 已停产,不再接收更新 #29455
  • 废弃 #27207 上的语法repo:shortiddocker pull
  • 废弃不带 overlay 和 overlay2 存储驱动程序的后备文件系统 #27433d_type
  • 在 Dockerfile 中弃用 #25466MAINTAINER
  • 废弃 endpoint 的 param #27872filter/images/json
  • 废弃设置重复的引擎标签 #24533
  • 废弃 #28437 中的 “top-level” 网络信息NetworkSettings

1.12.6 (2017-01-10)

重要

Docker 1.12 附带了更新的 rpm systemd 单元文件 基于安装(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)。从旧版本的 Docker 升级时,升级过程可能不会自动安装更新版本的 unit 文件,或者无法启动 if;docker service

  • systemd 单元文件 () 包含本地更改,或者/usr/lib/systemd/system/docker.service
  • 存在一个 systemd 插入式文件,并包含在指令-H fd://ExecStart

启动 将产生错误:docker service

Failed to start docker.service: Unit docker.socket failed to load: No such file or directory.

no sockets found via socket activation: make sure the service was started by systemd.

要解决此问题,请执行以下操作:

  • 备份 unit 文件的当前版本,并将该文件替换为 docker 1.12 附带的版本
  • 如果存在,请从文件中删除该指令Requires=docker.socket/usr/lib/systemd/system/docker.service
  • 从指令中删除(在 main unit 文件和存在的任何 drop-in 文件中)。-H fd://ExecStart

进行这些更改后,运行 和 重新加载更改并(重新)启动 docker 守护程序。sudo systemctl daemon-reloadsudo systemctl restart docker

注意

Docker 1.12.5 将正确验证是否提供了 IPv6 子网,或者 IPAM 驱动程序是否可以在您指定选项时提供一个子网。--ipv6

如果您当前正在使用该选项而未指定该选项,则 Docker 守护程序将拒绝以 以下消息:--ipv6--fixed-cidr-v6

Error starting daemon: Error initializing network controller: Error creating
                       default "bridge" network: failed to parse pool request
                       for address space "LocalDefault" pool " subpool ":
                       could not find an available, non-overlapping IPv6 address
                       pool among the defaults to assign to the network

要解决此错误,请删除该标志(以保持相同的 行为,如 Docker 1.12.3 及更早版本中一样),或提供 IPv6 子网作为 值。--ipv6--fixed-cidr-v6

同样,如果您在创建网络时指定标志 使用默认 IPAM 驱动程序,而不提供 IPv6 、 network 创建将失败,并显示以下消息:--ipv6--subnet

Error response from daemon: failed to parse pool request for address space
                            "LocalDefault" pool "" subpool "": could not find an
                            available, non-overlapping IPv6 address pool among
                            the defaults to assign to the network

要解决此问题,请删除该标志(以保留相同的行为 如 Docker 1.12.3 及更早版本中一样),或提供 IPv6 子网作为标志的值。--ipv6--subnet

如果您使用外部 IPAM 驱动程序,则网络创建将成功 它支持自动分配 IPv6 子网。

运行

  • 修复 runC 提权问题 (CVE-2016-9962)

1.12.5 (2016-12-15)

重要

Docker 1.12 附带了更新的 rpm systemd 单元文件 基于安装(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)。从旧版本的 Docker 升级时,升级过程可能不会自动安装更新版本的 unit 文件,或者无法启动 if;docker service

  • systemd 单元文件 () 包含本地更改,或者/usr/lib/systemd/system/docker.service
  • 存在一个 systemd 插入式文件,并包含在指令-H fd://ExecStart

启动 将产生错误:docker service

Failed to start docker.service: Unit docker.socket failed to load: No such file or directory.

no sockets found via socket activation: make sure the service was started by systemd.

要解决此问题,请执行以下操作:

  • 备份 unit 文件的当前版本,并将该文件替换为 docker 1.12 附带的版本
  • 如果存在,请从文件中删除该指令Requires=docker.socket/usr/lib/systemd/system/docker.service
  • 从指令中删除(在 main unit 文件和存在的任何 drop-in 文件中)。-H fd://ExecStart

进行这些更改后,运行 和 重新加载更改并(重新)启动 docker 守护程序。sudo systemctl daemon-reloadsudo systemctl restart docker

注意

Docker 1.12.5 将正确验证是否提供了 IPv6 子网,或者 IPAM 驱动程序是否可以在您指定选项时提供一个子网。--ipv6

如果您当前正在使用该选项而未指定该选项,则 Docker 守护程序将拒绝以 以下消息:--ipv6--fixed-cidr-v6

Error starting daemon: Error initializing network controller: Error creating
                       default "bridge" network: failed to parse pool request
                       for address space "LocalDefault" pool " subpool ":
                       could not find an available, non-overlapping IPv6 address
                       pool among the defaults to assign to the network

要解决此错误,请删除该标志(以保持相同的 行为,如 Docker 1.12.3 及更早版本中一样),或提供 IPv6 子网作为 值。--ipv6--fixed-cidr-v6

同样,如果您在创建网络时指定标志 使用默认 IPAM 驱动程序,而不提供 IPv6 、 network 创建将失败,并显示以下消息:--ipv6--subnet

Error response from daemon: failed to parse pool request for address space
                            "LocalDefault" pool "" subpool "": could not find an
                            available, non-overlapping IPv6 address pool among
                            the defaults to assign to the network

要解决此问题,请删除该标志(以保留相同的行为 如 Docker 1.12.3 及更早版本中一样),或提供 IPv6 子网作为标志的值。--ipv6--subnet

如果您使用外部 IPAM 驱动程序,则网络创建将成功 它支持自动分配 IPv6 子网。

运行

  • 修复发送 stdin close 事件时的竞争问题 #29424

联网

  • 修复在旧版 docker 中,当创建网络时没有 ipv6 时,docker network ls 中出现的 panic #29416--ipv6--subnet

贡献

  • 修复 Darwin 上的编译 #29370

1.12.4 (2016-12-12)

重要

Docker 1.12 附带了更新的 rpm systemd 单元文件 基于安装(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)。从旧版本的 Docker 升级时,升级过程可能不会自动安装更新版本的 unit 文件,或者无法启动 if;docker service

  • systemd 单元文件 () 包含本地更改,或者/usr/lib/systemd/system/docker.service
  • 存在一个 systemd 插入式文件,并包含在指令-H fd://ExecStart

启动 将产生错误:docker service

Failed to start docker.service: Unit docker.socket failed to load: No such file or directory.

no sockets found via socket activation: make sure the service was started by systemd.

要解决此问题,请执行以下操作:

  • 备份 unit 文件的当前版本,并将该文件替换为 docker 1.12 附带的版本
  • 如果存在,请从文件中删除该指令Requires=docker.socket/usr/lib/systemd/system/docker.service
  • 从指令中删除(在 main unit 文件和存在的任何 drop-in 文件中)。-H fd://ExecStart

进行这些更改后,运行 和 重新加载更改并(重新)启动 docker 守护程序。sudo systemctl daemon-reloadsudo systemctl restart docker

运行

  • 修复 volume 元数据未被移除的问题 #29083
  • 异步关闭流以防止持有容器锁 #29050
  • 修复新创建的容器卷的 selinux 标签 #29050
  • 删除主机名验证 #28990
  • 修复 IO race 导致的死锁 #29095 #29141
  • 如果容器正在重启,则返回空 stats #29150
  • 修复 Volume store 锁定问题 #29151
  • 确保 API #29150 中的状态码一致
  • 修复 overlay2 中不透明的目录权限不正确的问题 #29093
  • 检测插件内容和错误 #29297docker pull

群模式

  • 拒绝未命名为 “default” 的 Swarm 规范 #29152

联网

伐木

  • 更新 syslog 日志驱动程序 #29150

贡献

  • 在 fedora 中安装前执行 dnf upgrade的问题 #29150
  • 将 build-date 添加回 RPM 包 #29150
  • 将 deb 包文件名更改为包含 distribution 以区分分发代码名称 #27829

1.12.3 (2016-10-26)

重要

Docker 1.12 附带了更新的 rpm systemd 单元文件 基于安装(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)。从旧版本的 Docker 升级时,如果出现以下情况,升级过程可能不会自动安装更新版本的单元文件,或者无法启动 Docker 服务;

  • systemd 单元文件 () 包含本地更改,或者/usr/lib/systemd/system/docker.service
  • 存在一个 systemd 插入式文件,并包含在指令-H fd://ExecStart

启动 将产生错误:docker service

Failed to start docker.service: Unit docker.socket failed to load: No such file or directory.

no sockets found via socket activation: make sure the service was started by systemd.

要解决此问题,请执行以下操作:

  • 备份 unit 文件的当前版本,并将该文件替换为 docker 1.12 附带的版本
  • 如果存在,请从文件中删除该指令Requires=docker.socket/usr/lib/systemd/system/docker.service
  • 从指令中删除(在 main unit 文件和存在的任何 drop-in 文件中)。-H fd://ExecStart

进行这些更改后,运行 和 重新加载更改并(重新)启动 docker 守护程序。sudo systemctl daemon-reloadsudo systemctl restart docker

运行

  • 修复容器中的环境功能使用情况 (CVE-2016-8867) #27610
  • 防止 Windows 的 libcontainerd 死锁 #27136
  • 修复 CopyFileWithTar 报错问题 #27075
  • 将运行状况重置为在容器重启时启动 #27387
  • 正确处理 storage 目录中的共享挂载传播 #27609
  • 修复 docker exec #27610
  • 修复与 containerd 事件日志的向后兼容性 #27693

群模式

  • 修复 restart-policy 的转换 #27062

联网

  • 在 bridge 驱动程序 docker/libnetwork 中重置连接撤销的端点端口信息#1504

伐木

  • 将 fluent-logger-golang 更新到 v1.2.1 #27474

贡献

  • 更新 armhf ubuntu-trusty 的 buildtags #27327
  • 将 AppArmor 添加到 armhf 的 runc 构建标签中 #27421

1.12.2 (2016-10-11)

重要

Docker 1.12 附带了更新的 rpm systemd 单元文件 基于安装(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)。从旧版本的 Docker 升级时,升级过程可能不会自动安装更新版本的 unit 文件,或者无法启动 if;docker service

  • systemd 单元文件 () 包含本地更改,或者/usr/lib/systemd/system/docker.service
  • 存在一个 systemd 插入式文件,并包含在指令-H fd://ExecStart

启动 将产生错误:docker service

Failed to start docker.service: Unit docker.socket failed to load: No such file or directory.

no sockets found via socket activation: make sure the service was started by systemd.

要解决此问题,请执行以下操作:

  • 备份 unit 文件的当前版本,并将该文件替换为 docker 1.12 附带的版本
  • 如果存在,请从文件中删除该指令Requires=docker.socket/usr/lib/systemd/system/docker.service
  • 从指令中删除(在 main unit 文件和存在的任何 drop-in 文件中)。-H fd://ExecStart

进行这些更改后,运行 和 重新加载更改并(重新)启动 docker 守护程序。sudo systemctl daemon-reloadsudo systemctl restart docker

运行

  • 修复由于竞争条件过滤导致的 panic 问题 #26049docker ps
  • 实施重试逻辑以防止在使用 aufs 存储驱动程序时出现“无法删除文件系统”错误 #26536
  • 如果启用,则阻止 devicemapper 删除设备符号链接 #24740dm.use_deferred_removal
  • 修复了使用无效选项运行命令时 CLI 不返回正确退出代码的问题 #26777
  • 修复健康检查中 stdout / stderr 处理的 bug 导致的 panic 问题 #26507
  • 修复 exec 的 children 处理 #26874
  • 修复 HEALTHCHECK 的执行表单 CMD #26208

联网

群模式

  • 如果在 docker/swarmkit 上发布同一个端口两次,则会产生错误#1495service createservice update

贡献

  • 更新 debian sysv-init 脚本以代替 #25869dockerddocker daemon
  • 提升在 MacOS Sierra 上运行 docker 客户端时的稳定性 #26875
  • 修复在 debian stretch 上的安装 #27184

窗户

  • 修复在 ConEmu 中运行 docker 客户端时 arrow-navigation 不起作用的问题 #25578

1.12.1 (2016-08-18)

重要

Docker 1.12 附带了更新的 rpm systemd 单元文件 基于安装(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)。从旧版本的 Docker 升级时,升级过程可能不会自动安装更新版本的 unit 文件,或者无法启动 if;docker service

  • systemd 单元文件 () 包含本地更改,或者/usr/lib/systemd/system/docker.service
  • 存在一个 systemd 插入式文件,并包含在指令-H fd://ExecStart

启动 将产生错误:docker service

Failed to start docker.service: Unit docker.socket failed to load: No such file or directory.

no sockets found via socket activation: make sure the service was started by systemd.

要解决此问题,请执行以下操作:

  • 备份 unit 文件的当前版本,并将该文件替换为 docker 1.12 附带的版本
  • 如果存在,请从文件中删除该指令Requires=docker.socket/usr/lib/systemd/system/docker.service
  • 从指令中删除(在 main unit 文件和存在的任何 drop-in 文件中)。-H fd://ExecStart

进行这些更改后,运行 和 重新加载更改并(重新)启动 docker 守护程序。sudo systemctl daemon-reloadsudo systemctl restart docker

客户

  • #25512 中添加信息Joined atnode inspect --pretty
  • 修复 #25454 的崩溃问题service inspect
  • 修复无法按预期工作的问题 #25427service update --env-add
  • 修复无法按预期工作的问题 #25428service update --publish-add
  • Remove 和 flags 因为这个功能在 1.12 中还没有实现,而是无意间添加的 到 1.12.0 的客户端 #25646service update --network-addservice update --network-rm

贡献

  • Debian Jessie、Ubuntu Trusty 和 Raspbian Jessie 的官方 ARM 安装 #24815 #25591
  • 为每个发行版/版本添加 selinux 策略,修复在 Fedora 24 和 Oracle Linux 上无法成功安装的问题 #25334 #25593

联网

  • 修复了在 Swarm 模式下使用 Docker overlay 驱动程序阻止主机名访问容器的问题 #25603 #25648
  • 修复已发布端口的服务上的随机网络问题 #25603
  • 修复扩容后服务间通信不可靠的问题 #25603
  • 修复删除节点上的所有任务并重新添加会中断与其他服务连接的问题 #25603
  • 修复无法启动的任务导致争用的问题,从而导致掩盖实际错误的错误 #25550network xxx not found
  • 放宽对使用未根据 RFC 2782 #25739 格式化的 SRV 记录的外部服务的 SRV 记录的验证

插件(实验性)

  • 让守护进程事件监听插件生命周期事件 #24760
  • 启用插件前检查插件状态 #25033
  • 从文件系统中删除插件根目录 #25187plugin rm
  • 防止安装多个插件时死锁 #25384

运行

  • 屏蔽守护进程日志中的 join tokens #25346
  • 修复结果不再按创建时间排序的问题 #25387docker ps --filter
  • 修复各种崩溃问题 #25053

安全

  • 添加到屏蔽路径列表以防止主机信息泄露 #25630/proc/timer_list
  • 允许 systemd 仅使用 seccomp 过滤来运行,而不必同时添加或禁用 seccomp 过滤 #25567--cap-add SYS_ADMIN--cap-add DAC_READ_SEARCH

  • 守护进程重启后保留本地卷选项 #25316
  • 修复了在卷卸载时未返回挂载 ID 的问题 #25333
  • 修复 volume 挂载可能无意中创建 bind mount 的问题 #25309
  • docker service create --mount type=bind,...现在可以正确验证源路径是否存在,而不是创建它 #25494

1.12.0 (2016-07-28)

重要

Docker 1.12.0 附带了更新的 rpm systemd 单元文件 基于安装(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)。从旧版本的 Docker 升级时,升级过程可能不会自动安装更新版本的 unit 文件,或者无法启动 if;docker service

  • systemd 单元文件 () 包含本地更改,或者/usr/lib/systemd/system/docker.service
  • 存在一个 systemd 插入式文件,并包含在指令-H fd://ExecStart

启动 将产生错误:docker service

Failed to start docker.service: Unit docker.socket failed to load: No such file or directory.

no sockets found via socket activation: make sure the service was started by systemd.

要解决此问题,请执行以下操作:

  • 备份 unit 文件的当前版本,并将该文件替换为 docker 1.12 附带的版本
  • 如果存在,请从文件中删除该指令Requires=docker.socket/usr/lib/systemd/system/docker.service
  • 从指令中删除(在 main unit 文件和存在的任何 drop-in 文件中)。-H fd://ExecStart

进行这些更改后,运行 和 重新加载更改并(重新)启动 docker 守护程序。sudo systemctl daemon-reloadsudo systemctl restart docker

重要

在 Docker 1.12 中,Linux 安装现在有两个 其他二进制文件;和。如果您有用于 安装的脚本 ,请确保相应地更新它们。dockerdockerddocker-proxydocker

建筑工人

  • 支持 user-defined healthchecks 的新 Dockerfile 指令 #23218HEALTHCHECK
  • 新的 Dockerfile 指令,用于在 Dockerfile 中使用 shell 形式执行命令时指定默认 shell #22489SHELL
  • 添加 Dockerfile 指令以支持在 Dockerfile 中对文件路径进行特定于平台的解析 #22268#escape=
  • #23111 中添加对注释的支持.dockerignore
  • 在 Dockerfile 中支持 UTF-8 #23372
  • 跳过 UTF-8 BOM 字节(如果存在)的问题 #23234Dockerfile.dockerignore
  • Windows:支持匹配 Linux #22508ARG
  • 修复在禁用 bridge 网络的情况下使用 daemon 构建时的错误信息 #22932

贡献

  • 为 Centos 7 和 Oracle Linux 7 启用 seccomp #22344
  • 移除 systemd 单元中的 MountFlags 以允许共享挂载传播 #22806

分配

  • Add 和 daemon 标志在网络连接不支持多次下载/上传的情况下很有用 #22445--max-concurrent-downloads--max-concurrent-uploads
  • Registry 操作现在支持环境变量 #22316ALL_PROXY
  • #23377 上向用户提供更多信息docker load
  • 始终保存有关推送和拉取的镜像的注册表摘要元数据 #23996

伐木

  • Syslog 日志记录驱动程序现在支持 DGRAM 套接字 #21613
  • 新增显示日志标签的选项 #21889--detailsdocker logs
  • 启用 syslog 记录器以访问 env 和 labels #21724
  • 额外的 syslog-format 选项,允许在 syslog 时间戳中使用微秒级分辨率 #21844rfc5424micro
  • 创建容器时继承守护进程日志选项 #21153
  • 从 log messages 标签中删除 prefix 并将其替换为,以便用户可以选择更改前缀 #22384docker/{{.DaemonName}}

联网

  • 使用 IPVS 的内置基于 Virtual-IP 的内部和入口负载均衡 #23361
  • 使用 Ingress Overlay 网络路由网格 #23361
  • 使用加密的控制平面和数据平面的安全多主机叠加网络 #23361
  • MacVlan 驱动程序已从实验性 #23524 中退出
  • 添加 filter 到 #22319drivernetwork ls
  • #23300 添加过滤器networkdocker ps --filter
  • 为 添加标志,并指定容器的 link-local 地址 #23415--link-local-ipcreaterunnetwork connect
  • 新增网络标签过滤器支持 #21495
  • 删除了 Swarm 模式下 Overlay 网络对外部 KV-Store 的依赖 #23361
  • 添加容器的 short-id 作为默认网络别名 #21901
  • run选项,不再互斥 #22408--dns--net=host
  • 修复使用生成名称重命名容器时的 DNS 问题 #22716
  • 允许两者 and 解决检查输出的不一致问题 #23226network inspect -f {{.Id}}network inspect -f {{.ID}}

插件(实验性)

  • 带有 、 子命令的管理器插件的新命令 #23446plugininstallenabledisablerminspectset

远程API (v1.24) & 客户端

  • 将二进制文件拆分为两个:(client) 和 (daemon) #20639dockerdockerd
  • 添加和筛选到 #22908beforesincedocker images --filter
  • 添加选项到 #23107--limitdocker search
  • 添加选项到 #22369--filterdocker search
  • 在输出中增加安全选项 #21172 #23520docker info
  • 在 output 中添加不安全的 registry #20410docker info
  • 使用 TLS 用户信息扩展 Docker 授权 #21556
  • devicemapper:通过 #21945 公开最小精简池可用空间docker info
  • API 现在在发生错误时返回 JSON 对象,使其更加一致 #22880
  • 防止出口挂机 #22777docker run -i --restart
  • 修复主机名验证的 API/CLI 差异 #21641
  • 修复 HumanSize 到 BytesSize 的大小格式不一致的问题 #21773stats
  • authz: 当请求被拒绝时返回禁止退出代码 (403) #22448
  • Windows:修复 tty 相关的显示问题 #23878

运行

  • 将 userland 代理拆分为单独的二进制文件 () #23312docker-proxy
  • 添加 daemon 标志,以便在 daemon 关闭时保持容器运行,并在启动时重新获得控制权 #23213--live-restore
  • 能够添加与 OCI 兼容的运行时(通过守护进程标志)并选择带有 on 和 #22983 的运行时--add-runtime--runtimecreaterun
  • 适用于 Linux 4.0+ 的新 graphdriver,支持多个下目录 #22126overlay2
  • 新的加载/保存镜像事件 #22137
  • 新增支持通过 systemd 重新加载守护进程配置 #22446
  • 添加对 btrfs 的磁盘配额支持 #19651
  • 添加对 zfs 的磁盘配额支持 #21946
  • 新增对 #22481 的支持docker run --pid=container:<id>
  • 将默认 seccomp 配置文件与所选功能对齐 #22554
  • 在守护进程重新加载配置时添加事件 #22590daemon reload
  • 在 pprof 分析器中新增以二进制形式显示执行跟踪的功能 #22715trace
  • 添加事件 #22898detach
  • 新增对使用 #19265 设置 sysctl 参数的支持--sysctl
  • 在 devicemapper 上添加 flag 并允许设置 #19367--storage-optcreaterunsize
  • 新增 daemon flag,默认值为降低守护进程在容器之前被杀死的可能性 #24516--oom-score-adjust-500
  • 废弃 on 、 、 、 #22621 的短别名-c--cpu-sharesrunbuildcreateupdate
  • 防止在 eCryptfs 挂载上使用 aufs 和 overlay graphdriver #23121
  • 修复 tmpfs 挂载排序的问题 #22329
  • 创建的容器不再在 #21947 上列出docker ps -a -f exited=0
  • 修复容器卡在 “Removal In Progress” 状态的问题 #22423
  • 修复在 run/create 时未指定命令时返回 HTTP 500 而不是 400 的问题 #22762
  • 修复 Importing 匹配 detach key 的前缀时未保留的问题 #22943--detach-keys
  • SELinux 标签现在在使用模式时被禁用 #22993--privileged
  • 如果将卷挂载到容器中,则不再使用 SELinux 重新标记 #22993/etc/hosts/etc/resolv.conf/etc/hostname
  • 修复挂载选项行为不一致的问题 #22438--tmpfs
  • 修复 daemon 在启动时挂起的问题 #23148
  • 忽略 SIGPIPE 事件以防止 journald 重启导致 docker 在某些情况下崩溃 #22460
  • 错误 #20835 时,容器未从统计列表中删除
  • 修复守护进程重启时的重启策略 #20853on-failure
  • 修复容器使用其他容器网络时的问题 #21904stats

群模式

  • 新增使用 、 、 、 、 子命令管理 swarm 的命令 #23361 #24823swarminitjoinjoin-tokenleaveupdate
  • 新增了使用 、 子命令管理 swarm 范围服务的命令 #23361 #25140servicecreateinspectupdatermps
  • 新增使用 、 、 、 和子命令管理节点的命令 #23361 #25140nodeacceptpromotedemoteinspectupdatepslsrm
  • (实验性)用于管理和部署多服务应用程序的新命令 #23522 #25140stackdeploy

  • 添加对本地和全局卷范围的支持(类似于网络范围)#22077
  • 允许 volume drivers 提供字段 #21006Status
  • 为卷添加名称/驱动程序过滤器支持 #21361
  • 挂载/卸载操作现在接收一个不透明的 ID,以允许卷驱动程序区分两个调用者 #21015
  • 修复在极端情况下无法删除 Volume 的问题 #22103
  • Windows:启用自动创建 host-path 以匹配 Linux #22094

折旧

  • 环境变量 和 已重命名 to 和 分别为 #22574DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASEDOCKER_CONTENT_TRUST_TAGGING_PASSPHRASEDOCKER_CONTENT_TRUST_ROOT_PASSPHRASEDOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE
  • 移除废弃的 , , log 选项,改用更通用的选项 #22620syslog-taggelf-tagfluentd-tagtag
  • 移除了在 API 容器启动时传递 HostConfig 的废弃功能 #22570
  • 移除 docker 标签上已弃用的 / 标志 #23090-f--force
  • 删除已弃用的端点 #22149/containers/<id|name>/copy
  • 移除已弃用的 Flags 和 #22138docker ps--since--before
  • 废弃旧的 3-args 形式 #23273docker import

1.11.2 (2016-05-31)

联网

  • 修复不正常重启期间覆盖网络上的过时端点问题 ( #23015)
  • 修复了 ( #22997 可能报告错误端口的问题docker inspect/ps/port)

运行

  • 修复运行时可能出现的 panic 问题 ( #23032docker build)
  • 修复参数的解释 ( #22998--user)
  • 修复了无法正确报告容器统计信息的 bug ( #22955)
  • 修复了在守护进程重启后阻止容器重启的问题 ( #22947)
  • 修复在 Ubuntu 16.04 上运行 32 位二进制文件时的问题 ( #22922)
  • 修复镜像删除和容器附加时可能出现的死锁 ( #22918)
  • 修复了以下问题:如果容器依赖于容器化集群存储,则容器在守护进程重启后无法启动 ( #22561)
  • 修复了在使用 devicemapper 时导致 CentOS 挂起的问题( #22168#23067docker ps)
  • 修复了在使用 devicemapper 时阻止 to 进入容器的 bug ( #22168#23067docker exec)

1.11.1 (2016-04-26)

分配

  • 将 schema2 清单媒体类型修复为 type ( #21949application/vnd.docker.container.image.v1+json)

文档

  • 为 1.11.0 中引入的更改添加了缺少的 API 文档 ( #22048)

建筑工人

  • 将作为参数传递给的标签作为隐式命令附加到已处理的末尾 ( #22184docker buildLABELDockerfile)

联网

  • 修复转发 DNS 查询时出现的 panic ( #22261)
  • 修复了在使用用户定义的网络时,操作系统线程可能位于不正确的网络命名空间中的问题 ( #22261)

运行

  • 修复了阻止通过配置文件重新加载标签配置的问题 ( #22299)
  • 修复了容器挂载会阻止删除其他容器的回归问题 ( #22256/var/run)
  • 修复了无法同时更新 和 value 的问题 ( #22255memory-swapmemory)
  • 修复了 1.11.0 中的一个回归问题,即如果未提供端点,则端点不会初始化 ( #22254/authserveraddress)
  • 在取消计划重启时添加缺少的容器临时文件清理 ( #22237)
  • 删除未指定重启策略时的可怕错误消息 ( #21993)
  • 修复了通过 json 规范激活插件时发生的 panic ( #22191)
  • 修复重启退避逻辑,以便在容器运行至少 10 秒时正确重置延迟 ( #22125)
  • 删除取消容器重启时的错误消息 ( #22123)
  • 修复 后无法正确清理的问题 ( #22121dockerdocker exec)
  • 修复了在提供并发命令时可能发生的 panic ( #22120docker stats)`
  • 恢复对不存在的主机目录自动创建的弃用 ( #22065)
  • 隐藏守护进程关闭时的误导性 rpc 错误 ( #22058)

1.11.0 (2016-04-13)

重要

在 Docker 1.11 中,Linux Docker 安装现在由 4 个二进制文件(docker-containerddocker-containerd-shimdocker-runc)组成。如果您的脚本依赖于单个静态二进制文件,请确保更新它们。与守护进程的交互保持不变,否则,其他二进制文件的使用应该是透明的。Windows Docker 安装仍然是单个二进制文件 .dockerdockerdocker.exe

建筑工人

  • 修复了 Docker 在处理命令时不使用正确的 uid/gid 的 bug ( #21033WORKDIR)
  • 修复了对 userns 的复制操作不会使用正确的 uid/gid 的 bug ( #20782#21162)

客户

  • 已弃用 separator for security 选项。 应改用 ( #21232:=)
  • 客户端用户代理现在通过 、 、 和 操作 ( #21306#21373pullbuildpushloginsearch)
  • 允许通过 API 分别设置 Domainname 和 Hostname ( #20200)
  • 现在,如果 Docker info 无法检测到内核版本或操作系统,它将警告用户 ( #21128)
  • 修复 output 可能全为 0 的问题 ( #20803docker stats --no-stream)
  • 修复了某些新启动的容器不会出现在正在运行的命令中的 bug ( #20792docker stats)
  • linux-cgo 终端不再启用后处理 ( #20587)
  • 如果值不符合 RFC1123,则现在将拒绝 to ( #20566--hostname)
  • Docker 学会了如何使用 SOCKS 代理 ( #20366#18373)
  • Docker 现在支持外部凭证存储 ( #20107)
  • docker ps现在支持显示容器内挂载的卷列表 ( #20017)
  • docker info现在还会报告 Docker 的根目录位置 ( #19986)
  • Docker 现在禁止使用空用户名登录(空格被修剪) ( #19806)
  • Docker events 属性现在按键排序 ( #19761)
  • docker ps不再显示已停止容器的导出端口 ( #19483)
  • 现在,如果 save/export 命令失败,Docker 会自行清理 ( #17849)

分配

  • 修复拉取 0 层镜像时出现的 panic 问题 ( #21222)
  • 修复了在推送到令牌服务配置错误的注册表时可能发生的 panic ( #21212)
  • 现在,在执行可信推送时,所有第一级委派角色都会进行签名 ( #21046)
  • 添加了对注册表的 OAuth 支持 ( #20970)
  • docker login现在使用 docker/distribution 中的实现处理令牌 ( #20832)
  • docker login将不再提示输入电子邮件 ( #20565)
  • 如果没有可用的基本身份验证凭证,Docker 现在将回退到注册表 V1 ( #20241)
  • Docker 现在将尝试在网络错误/超时后从中断的地方恢复层下载 ( #19840)
  • 修复跨仓库推送时生成的清单 mediaType ( #19509)
  • 修复了在启用内容信任的情况下拉取镜像时 docker 请求额外推送凭证的问题 ( #20382)

伐木

  • 修复 journald log 驱动程序中的争用 ( #21311)
  • Docker syslog 驱动程序现在在发出日志时使用 RFC-5424 格式 ( #20121)
  • Docker GELF 日志驱动程序现在允许通过 and 选项指定压缩算法和级别 ( #19831gelf-compression-typegelf-compression-level)
  • Docker 守护进程学会了通过选项输出未着色的日志 ( #19794--raw-logs)
  • Docker 在 Windows 平台上现在包括一个名为 ( #19689etwlogs)
  • journald 日志驱动程序学会了如何处理标签 ( #19564)
  • fluentd 日志驱动程序学习了以下选项:、、 和 ( #19439fluentd-addressfluentd-buffer-limitfluentd-retry-waitfluentd-max-retriesfluentd-async-connect)
  • Docker 学会了通过新的日志记录驱动程序将日志发送到 Google Cloud。( #18766gcplogs)

杂项

  • 当将链接的图片与后续图片一起保存时,将正确恢复它们的父子关系 ( #21385docker savedocker load)
  • 添加了对为 OpenBSD 构建 Docker cli 的支持 ( #21325)
  • 现在可以在创建网络、卷和镜像时应用标签 ( #21270)
  • 现在,已创建为系统用户 ( #21266dockremap)
  • 修复一些响应体泄漏 ( #21258)
  • Docker 在与 systemd 一起作为服务运行时,现在可以正确管理其进程 cgroups ( #20633)
  • docker info现在报告 cgroup KernelMemory 的值,或者在不支持时发出警告 ( #20863)
  • docker info现在还会报告正在使用的 cgroup 驱动程序 ( #20388)
  • Docker 完成现已在 PowerShell 上可用 ( #19894)
  • dockerinit不再 ( #19490#19851)
  • 添加了对在 arm64 上构建 Docker 的支持 ( #19013)
  • 对在本机 Windows Docker 安装中构建 docker.exe 的实验性支持 ( #18348)

联网

  • 修复节点被强行从集群中删除时出现的 panic 问题 ( #21671)
  • 修复在 Swarm 集群中启动容器时出现的 error creating vxlan interface ( #21671)
  • docker network inspect现在将报告所有端点,无论它们是否具有活动的容器 ( #21160)
  • 添加了对 MacVlan 和 IPVlan 网络驱动程序的实验性支持 ( #21122)
  • 输出 现在按网络名称排序 ( #20383docker network ls)
  • 修复了 Docker 允许使用保留名称创建网络的错误 ( #19431default)
  • docker network inspect返回网络是否为内部网络 ( #19357)
  • 在创建网络时通过 explicit 选项控制 IPv6 ()。这在 ( #17513 中显示为一个新字段docker network create --ipv6EnableIPv6docker network inspect)
  • 支持嵌入式 DNS 服务器中的 AAAA 记录(也称为 IPv6 服务发现) ( #21396)
  • 修复不将 docker 域 IPv6 查询转发到外部服务器的问题 ( #21396)
  • 来自嵌入式 DNS 服务器的多个 A/AAAA 记录,用于 DNS 循环 ( #21019)
  • 修复 dameon 不正常重启后的端点计数不一致 ( #21261)
  • 将暴露的端口和端口映射选项的所有权从 Endpoint 移动到 Sandbox ( #21019)
  • 修复了在主机配置了 ipv6.disable=1 时阻止 docker 重新加载的错误 ( #21019)
  • 添加了内置的 nil IPAM 驱动程序 ( #21019)
  • 修复了 iptables 中的 bug。Exists() 逻辑 #21019
  • 修复了使用覆盖网络时 Veth 接口泄漏的问题 ( #21019)
  • 修复了在关闭期间删除网络后阻止 docker 重新加载的错误 ( #20214)
  • 确保在 firewalld 重新加载时重新创建 iptables 链 ( #20419)
  • 允许在配置重新加载期间传递全局数据存储 ( #20419)
  • 对于匿名容器,请使用 IP 到名称映射的别名,即:DNS PTR 记录 ( #21019)
  • 修复从 /etc/hosts 文件中删除条目时出现的 panic 问题 ( #21019)
  • 从容器 net 命名空间获取转发的 DNS 查询 ( #21019)
  • 修复了在守护进程重新加载时保留网桥网络的网络内部模式配置 ([#21780] ( https://github.com/docker/docker/pull/21780))
  • 修复在守护程序重新加载时保留 IPAM 驱动程序选项配置 ([#21914] ( https://github.com/docker/docker/pull/21914))

插件

  • 修复了每次枚举插件时都会发生的文件描述符泄漏 ( #20686)
  • 修复 Authz 插件在面对大量数据时会损坏 payload body 的问题 ( #20602)

运行

  • 修复了在容器启动后使用无效参数进行清理时可能发生的 panic ( #21716)
  • 修复事件计时器提前停止的比赛 ( #21692)
  • 修复图层存储中的争用条件,这可能会损坏地图并使进程崩溃 ( #21677)
  • 取消弃用自动创建用于挂载的主机目录的功能。此功能在 ( #21666) 中被标记为已弃用 Docker 1.9 的 1.9 版本,但被认为是一个向后不兼容的更改,因此决定保留该功能。
  • 现在,容器可以在启用后共享 NET 和 IPC 命名空间 ( #21383userns)
  • docker inspect <image-id>现在将公开 rootfs 层 ( #21370)
  • Docker Windows 获得了最小的实现 ( #21354top)
  • Docker 学会了在容器由于其状况而无法启动时报告有故障的 exe ( #21345)
  • 现在,如果设备映射器不可用,则带有设备映射器的 Docker 将拒绝运行 ( #21097udev sync)
  • 修复了 Docker 在重新加载配置时不验证配置文件的错误 ( #21089)
  • 修复了在初始启动失败时 attach 上发生的挂起问题 ( #21048)
  • 修复了未正确考虑守护进程配置文件中的 registry 服务选项的问题 ( #21045)
  • 修复 exec 和 resize 操作之间的竞争 ( #21022)
  • 修复了在过滤 Docker 事件时未正确考虑纳秒的问题 ( #21013)
  • 修复传递 64 字节 id 时对 Docker 命令的处理 ( #21002)
  • Docker 现在将返回一个 (即 http.StatusNoContent) 代码 ( #20977204)
  • 修复了守护进程无限期等待,以防它即将杀死的进程已经自行退出的错误 ( #20967
  • devmapper 驱动程序学习了该选项。如果映射的设备可用空间达到传递的值,将禁止创建新设备。( #20786dm.min_free_space)
  • Docker 现在可以通过标志阻止容器中的进程获得新权限 ( #20727--security-opt=no-new-privileges)
  • 现在,使用该选项启动容器将正确解析符号链接 ( #20684--device)
  • 修复 docker 配置重新加载以仅更改给定配置文件中存在的值 ( #20604)
  • Docker 现在允许在以下情况下通过标志设置容器主机名 ( #20177--hostname--net=host)
  • Docker 现在允许在运行时执行特权容器(如果同时指定了 new 标志)(#20111--userns-remap--privileged--userns=host)
  • 修复 Docker 在崩溃后重启时无法正确清理旧容器的问题 ( #19679)
  • 如果 Docker 无法识别配置文件中的配置键,它现在会出错 ( #19517)
  • 修复容器在守护进程启动时依赖于容器内运行的插件时加载的问题 ( #19500)
  • docker update了解如何更改容器重启策略 ( #19116)
  • docker inspect现在还返回一个以人类可读方式包含容器状态的新字段(即 、、、 或 )( #18966Statecreatedrestartingrunningpausedexiteddead)
  • Docker 学会了通过标志来限制容器中活动 PID(即进程)的数量。注意:这需要在内核配置中。( #18697pids-limitCGROUP_PIDS=y)
  • docker load现在有一个选项来抑制 Load 输出 ( #20078--quiet)
  • 修复 IPv6 对等体的邻居发现错误 ( #20842)
  • 修复使用无效选项启动容器时清理过程中的 panic ( #21802)
  • 修复终端关闭时无法停止容器的情况 ( #21840)

安全

  • 具有 selinux 类型的对象被授予对 ( #21370pcp_pmcd_t/var/lib/docker(/.*)?)
  • restart_syscall、 、 加入了默认 seccomp 配置文件中允许的调用列表 ( #21117#21262copy_file_rangemlock2)
  • send,并已添加到默认 seccomp 配置文件中允许的 syscall 和 arch 列表中 ( #19432recvx32)
  • Docker Content Trust 现在请求服务器执行快照签名 ( #21046)
  • 对使用 YubiKeys 进行内容信任签名的支持已从实验性中移出 ( #21591)

  • 输出现在按卷名称排序 ( #20389docker volume ls)
  • 本地卷现在可以接受类似于 unix 工具的选项 ( #20262mount)
  • 修复了一个字母目录名称无法用作卷源的问题 ( #21106)
  • docker run -v现在接受 new flag 。这会告知运行时不要将容器路径内容复制到卷中(这是默认行为)( #21223nocopy)

1.10.3 (2016-03-10)

运行

  • 修复 Docker 客户端退出时出现 “Unrecognized input header” 错误的问题 #20706
  • 修复 Exec 同时启动时 和 的 Docker 退出的问题 #20647AttachStdinDetach

分配

  • 修复并行推送多个共享相同图层的镜像到同一个仓库时崩溃的问题 #20831
  • 修复将镜像推送到使用错误配置错误的 Token 服务的 registry 时出现 panic 的问题 #21030

插件系统

  • 修复在启用 SELinux 时无法启动卷插件的问题 #20834
  • 如果卷插件对 Get 请求返回 null 响应,则防止 Docker 退出 #20682
  • 修复插件系统在插件出现错误时文件描述符泄漏的问题 #20680

安全

  • 修复 linux32 仿真在 docker build 期间失败的问题 #20672这是由于 syscall 被默认的 seccomp 配置文件阻止。personality
  • 修复 Oracle XE 10g 无法在容器中启动 #20981 这是由于 syscall 被默认的 seccomp 配置文件阻止。ipc
  • 修复用户命名空间在 Linux 上无法正常工作的问题 从头开始 #20685
  • 修复在启用 userns 且 or 文件包含注释时无法启动 daemon 的问题 #20725subuidsubgid

1.10.2 (2016-02-22)

运行

  • 防止 systemd 在重新加载容器的配置时删除容器的 cgroups #20518
  • 修复挂载时忽略 SELinux 的问题 #20333--read-only/dev/mqueue
  • 修复使用 userns 时使用的 chown 权限 #20446docker cp
  • 修复所有布尔值默认为 #20471 的配置加载问题true
  • 修复偶现的 panic 问题 #20522docker logs -f

分配

  • 删除失败时保留图层引用,避免严重不一致的状态 #20513
  • 在取消迁移时妥善处理极端情况 #20372
  • 修复压缩数据上的 docker import 问题 #20367
  • 修复迁移过程中 tar-split 文件损坏导致 docker push 和 docker save 失败的问题 #20458

联网

  • 修复多个同名卷引用的问题 #20381

安全

  • 修复潜在的缓存损坏和委托冲突问题 #20523

1.10.1 (2016-02-11)

运行

  • Do not stop daemon on migration 硬失败问题 #20156
  • 修复迁移到 content-addressable images 时的各种问题 #20058
  • 修复用户命名空间的 ZFS 权限错误 #20045
  • 不要将 /dev/mqueue 从主机泄漏到所有容器,保持容器特定 #19876 #20133
  • 修复在不提供标志的情况下不显示已停止的容器的问题 #20135docker ps --filter before=...-a

安全

  • 修复 docker events 无法正常使用授权插件的问题 #20002

分配

  • 添加额外的验证并防止将无效数据上传到 registry #20164
  • 修复镜像引用主机名中阻止大写字符的回归问题 #20175

联网

  • 修复存在 firewalld 的情况下用户自定义网络的嵌入式 DNSD #20060
  • 修复在关机期间删除网络导致 Docker 无法运行的问题 #20181 #20235
  • 嵌入式 DNS 现在可以返回压缩结果 #20181
  • 修复 port-mapping 问题 #20181userland-proxy=false

伐木

杂项

  • 从 Docker systemd 服务中移除 TasksMax #20167

1.10.0 (2016-02-04)

重要

Docker 1.10 为镜像和层使用新的内容可寻址存储。

迁移在首次运行时执行,并且可能需要大量时间,具体取决于存在的镜像数量。有关更多信息,请参阅 wiki 上的此页面:https://github.com/docker/docker/wiki/Engine-v1.10.0-content-addressability-migration 我们还发布了一个很酷的迁移实用程序,使您能够在更新之前执行迁移以减少停机时间。 可以在 Docker Hub 上找到引擎 1.10 迁移器:https://hub.docker.com/r/docker/v1.10-migrator/docker

运行

  • 允许在正在运行的容器上更新资源约束的新命令 #15078docker update
  • 添加 flag to 在容器中创建 tmpfs 挂载 #13587--tmpfsdocker run
  • 命令新增 flag #17692--formatdocker images
  • 允许在文件中设置 daemon 配置并使用 signal 热重载它 #18587SIGHUP
  • 更新了 docker 事件以包含更多元数据和事件类型 #18888此更改在 API 中向后兼容,但在 CLI 上不向后兼容。
  • #13959 添加标志--blkio-weight-devicedocker run
  • 添加 and 标记到 #14466--device-read-bps--device-write-bpsdocker run
  • 添加 and flags 到 #15879--device-read-iops--device-write-iopsdocker run
  • #16277 添加标志--oom-score-adjdocker run
  • 为 、 和 命令添加标志以覆盖从容器分离的默认键序列 #15666--detach-keysattachrunstartexec
  • 为 添加 flag ,并设置大小 #16168--shm-sizeruncreatebuild/dev/shm
  • 显示正在运行、已停止和已暂停的容器数量 #19249docker info
  • #17478 中显示 andOSTypeArchitecturedocker info
  • 新增 flag on 为所有容器设置 cgroup parent 的问题 #19062--cgroup-parentdaemon
  • 为 docker cp 添加 flag 以遵循符号链接 #16613-L
  • #17908 的新过滤器status=deaddocker ps
  • 更改退出代码以区分 runtime 和应用程序错误 #14012docker run
  • 增强并支持纳秒和时区 #17495docker events --since--until
  • 添加 / 标志以同时包含正在运行的容器和已停止的容器 #16742--all-astats
  • 将默认的 cgroup-driver 改为 #17704cgroupfs
  • 使用 #17115 标记图片时发出 “tag” 事件build -t
  • 在启动守护进程时,对链接容器的启动顺序尽力而为#18208
  • 新增添加多个标签的功能 #15780build
  • 允许针对任何 url 的请求,从而修复 CORS 的问题 #19569OPTIONS
  • 修复 flag on 实际上很安静 #17428--quietdocker build
  • 修复现在显示所有非悬空镜像的问题 #19326docker images --filter dangling=false
  • 修复导致 autorestart 在重启时关闭的竞争条件 #17629
  • 识别 GPFS 文件系统 #19216
  • 修复阻止启动容器的模糊 bug #19751
  • 容器重启时禁止 #19722exec
  • devicemapper:增加现在会增加守护进程重启时的基本设备大小 #19123--storage-opt dm.basesize

安全

  • 添加 flag to 以支持用户命名空间(之前处于实验阶段)#19187--userns-remapdaemon
  • #17989 中添加对自定义 seccomp 配置文件的支持--security-opt
  • 新增默认 seccomp 配置文件 #18780
  • 新增自定义 ACL 的标志 #15365--authorization-plugindaemon
  • Docker Content Trust 现在支持读取和写入用户委派的能力 #18887这是一个可选的可选功能,需要显式使用 Notary 命令行实用程序才能启用。 如果启用了内容信任,则在特定存储库中启用委派支持将破坏 Docker 1.9 和 1.8 从该存储库中提取的能力。
  • 使用 BTRFS 存储驱动程序时,允许 SELinux 在容器中运行 #16452

分配

  • 修复 docker 可能无限期挂起等待不存在的进程拉取镜像的问题 #19743

联网

  • 使用基于 DNS 的发现而不是 #19198/etc/hosts
  • 支持使用 on 和 on 的网络范围别名 #19242--net-aliasrun--aliasnetwork connect
  • 添加 and on and 以支持网络中容器的自定义 IP 地址 #19001--ip--ip6runnetwork connect
  • Add to 用于传递自定义 IPAM 选项 #17316--ipam-optnetwork create
  • 新增标志以限制外部对网络的访问 #19276--internalnetwork create
  • 添加选项到 #19167kv.path--cluster-store-opt
  • 新增 and 选项来配置发现 TTL 和心跳定时器 #18204discovery.heartbeatdiscovery.ttl--cluster-store-opt
  • #17481 添加标志--formatnetwork inspect
  • Add to 提供容器本地别名 #19229--linknetwork connect
  • 支持与远程 IPAM 插件进行功能交换 #18775
  • Add to 强制容器与网络断开连接 #19317--forcenetwork disconnect
  • 所有引擎支持的内核都使用内置 overlay 驱动程序支持多主机联网:3.10+ #18775
  • --link现在支持用户自定义网络中的容器 #19229docker run
  • 增强以允许删除多个网络 #17489docker network rm
  • #17615 中包含容器名称network inspect
  • #17316 中包括用户定义的网络自动生成的子网network inspect
  • 添加标志以隐藏预定义的网络 #17782--filternetwork ls
  • 为已停止的容器添加对网络连接/断开连接的支持 #18906
  • 为容器检查添加网络 ID #19323
  • 修复 Docker 无法以两个或多个默认路由开始的 MTU 问题 #18108
  • 修复容器 IP 地址重复的问题 #18106
  • 修复有时阻止 docker 创建桥接网络的问题 #19338
  • 使用时不要替换 127.0.0.1 name server #19573--net=host

伐木

  • 增强并支持纳秒和时间 #17495docker logs --since--until
  • 增强 AWS 日志以自动检测区域 #16640

  • 支持设置卷的挂载传播模式 #17034
  • Add and endpoints to volume plugin API #16534 现有的插件需要使用这些新的 API 来满足用户的期望 为此,请使用新的 MIME 类型 #19549lsinspectapplication/vnd.docker.plugins.v1.2+json
  • 修复数据未被复制到命名卷的问题 #19175
  • 修复 Volume Driver 无法被容器化的问题 #19500
  • 修复现在显示所有非悬空卷的问题 #19671docker volumes ls --dangling=false
  • 在移除容器时不要删除命名卷 #19568
  • 允许外部卷驱动程序托管匿名卷 #19190

建筑工人

  • 新增对通配符多级目录 in 的支持 #17090**.dockerignore
  • 修复 Dockerfile 中 UTF-8 字符的处理 #17055
  • 修复从 STDIN 读取时的权限问题 #19283

客户

  • 支持通过环境变量覆盖要使用的 API 版本 #15964DOCKER_API_VERSION

杂项

  • systemd:在 systemd 服务文件中除了设置 LimitNPROC 之外,还设置了 TasksMax #19391

弃用

  • 删除 LXC 支持。LXC 驱动程序在 Docker 1.8 中已弃用,现已被删除 #17700
  • 移除 daemon flag,因为它已不再使用 #17700--exec-driver
  • 删除旧的已弃用的单虚线长 CLI 标志(例如 ;use 代替)#17724-rm--rm
  • 在 API 容器启动时弃用 HostConfig #17799
  • 弃用新停产的 Linux 发行版的 docker 包:Fedora 21 和 Ubuntu 15.04 (Vivid) #18794#18809
  • 废弃 docker 标签的标志 #18350-f

1.9.1 (2015-11-21)

运行

  • 如果无法恢复镜像,则不要阻止守护进程引导 (#17695)
  • 在守护进程关闭/初始化时强制 IPC 挂载卸载 (#17539)
  • 将 IPC 卸载错误转换为警告 (#17554)
  • 修复性能回归 (#17638)docker stats
  • 阐明 if 上的神秘错误消息 (#17767)docker logs--log-driver=none
  • 修复很少出现 panic 的问题 (#17639, #17634, #17703)
  • 修复带有点前缀的文件的 opq whiteouts 问题 (#17819)
  • DeviceMapper:出于性能原因,尝试默认使用 XFS 而不是 ext4(#17903、#17918)
  • DeviceMapper:修复 Docker 信息中显示的 FS (#17974)
  • SELindict:仅在用户使用选项要求时才重新标记 (#17450, #17834)z
  • 规范化名称时不进行网络调用 (#18014)

客户

  • 在 Windows 上修复 (#17738)docker login
  • 修复未连接到守护进程时输出的错误 (#17715)docker inspect
  • 修复 (#17680)docker inspect -f {{.HostConfig.Dns}} somecontainer

建筑工人

  • 修复 ADD/COPY 中符号链接行为的回归 (#17710)

联网

  • 允许将网络 ID 作为参数传递 (#17558)--net
  • 修复连接到主机并防止断开与主机的网络连接 (#17476)host
  • 修复了网关 ip 落在 ip-range 内且 ip-range 为 不是网络中的第一个区块 (#17853)--fixed-cidr
  • 从默认网络上的地址恢复确定性生成 (#17890)IPv6MACbridge
  • 仅允许在 docker run 上创建的端点进行端口映射 (#17858)
  • 修复了可能过时的 sbox 的端点删除问题 (#18102)

分配

  • 当磁盘上的 v1Compatibility 文件不一致时,更正 v2 推送中的父链 (#18047)

1.9.0 (2015-11-03)

运行

  • docker stats现在返回区块 IO 指标 (#15005)
  • docker stats现在详细说明每个接口的网络统计信息 (#15786)
  • Add filter to flag to filter (添加过滤器到标志) to filter 基于其上级镜像的容器 (#14570)ancestor=<image>docker ps --filter
  • 将 filter 添加到 filter containers 基于标签 (#16530)label=<somelabel>docker ps --filter
  • 向 (#14006) 添加标志--kernel-memorydocker run
  • 向 allow 添加标志以指定可选 消息 (#15711)--messagedocker import
  • 向 (#14113) 添加标志--privilegeddocker exec
  • 添加允许替换容器的标志 进程停止信号 (#15307)--stop-signaldocker run
  • 添加新的重启策略 (#15348)unless-stopped
  • 检查镜像现在返回标签 (#13185)
  • 将容器大小信息添加到 (#15796)docker inspect
  • 添加和字段到 (#17275)RepoTagsRepoDigests/images/{name:.*}/json
  • 从 API 中删除已弃用的端点 (#15972)/container/ps
  • 发送并记录正确的 HTTP 代码 (#16250)/exec/<name>/start
  • 在共享 IPC 命名空间的容器之间共享 shm 和 mqueue (#15862)
  • 事件流现在在设置时显示 OOM 状态 (#16235)--oom-kill-disable
  • 如果绑定挂载,请确保特殊网络文件(/etc/hosts 等)是只读的 带选项 (#14965)ro
  • 提高性能 (#16890)rmi
  • 不要更新默认桥接网络的 /etc/hosts,链接除外 (#17325)
  • 修复与重复容器名称的冲突 (#17389)
  • 修复模板执行不正确的问题 (#17284)docker inspect
  • 弃用 Docker run 中的短标志变体 (#16271)-c--cpu-shares

客户

  • 允许从本地文件导入 (#11907)docker import

建筑工人

  • 添加 Dockerfile 指令,允许设置不同的 容器进程的 stop-signal (#15307)STOPSIGNAL
  • 添加 Dockerfile 指令和允许添加构建时环境变量的标志 (#15182)ARG--build-argdocker build
  • 提高缓存未命中性能 (#16890)

存储

  • devicemapper:实现延迟删除功能 (#16381)

联网

  • docker network退出实验版,成为标准版的一部分 (#16645)
  • 新的网络顶级概念,以及相关的子命令和 API (#16645) 警告:API 与实验性 API 不同
  • 支持多个隔离/微分段网络 (#16645)
  • 使用基于 VXLAN 的覆盖驱动程序的内置多主机网络 (#14071)
  • 支持第三方网络插件 (#13424)
  • 能够将容器动态连接到多个网络 (#16645)
  • 支持通过可插拔 IPAM 驱动程序管理用户定义的 IP 地址 (#16910)
  • 添加守护进程标志和内置节点发现 (#16229)--cluster-store--cluster-advertise
  • 添加用于设置 TLS 设置 (#16644)--cluster-store-opt
  • 添加到守护进程 (#16031)--dns-opt
  • 在 API v1.21 中弃用了以下容器字段:、、 和 . 这些现在特定于网络。用于检查 每个网络的容器的网络设置。NetworkSettingsEndpointIDGatewayGlobalIPv6AddressGlobalIPv6PrefixLenIPAddressIPPrefixLenIPv6GatewayMacAddressbridgeNetworkSettings.Networks

  • 新的顶级子命令和 API (#14242)volume
  • 将 API 卷驱动程序设置移动到特定于主机的配置 (#15798)
  • 如果卷名称不唯一,则打印错误消息 (#16009)
  • 确保从 Dockerfile 创建的卷始终使用本地卷驱动程序 (#15507)
  • 弃用为绑定挂载自动创建缺失的主机路径 (#16349)

伐木

  • 为 Amazon CloudWatch 添加日志记录驱动程序 (#15495)awslogs
  • 添加通用日志选项以允许自定义容器/镜像 传递给驱动程序的信息 (#15384)tag
  • 实现 journald 驱动程序的端点 (#13707)docker logs
  • 弃用特定于驱动程序的日志标记 (#15384)

分配

  • docker search现在可以使用部分名称 (#16509)
  • 推送优化:避免缓冲到文件 (#15493)
  • 守护程序将显示已拉取的镜像的进度 由另一个客户 (#15489)
  • 仅请求当前正在执行的操作所需的权限 (#)
  • 将信任密钥(和相应的环境变量)从 to 重命名为 (#16894)offlineroottaggingrepository
  • 弃用信任密钥环境变量和 (#16894)DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASEDOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE

安全

  • 将 SELinux 配置文件添加到 rpm 软件包中 (#15832)
  • 修复 deb 包中提供的 AppArmor 配置文件的各种问题 (#14609)
  • 添加阻止写入 /proc 的 AppArmor 策略 (#15571)

1.8.3 (2015-10-12)

分配

  • 修复 Layer ID 导致本地图中毒的问题 (CVE-2014-8178)
  • 修复清单验证和解析逻辑错误允许绕过摘要提取验证 (CVE-2014-8179)
  • 添加以防止守护程序使用 v1 注册表--disable-legacy-registry

1.8.2 (2015-09-10)

分配

  • 修复了处理 GNU LongLink 和 LongName 条目的罕见边缘情况。
  • 修复 docker pull 上的 ^C。
  • 修复客户端断开连接时的 docker pull 问题。
  • 修复了在记录器配置不正确时导致守护程序 panic 的问题。
  • 修复 goroutine 从注册表 V2 泄漏拉取镜像的问题。

运行

  • 修复了为 Docker 容器中运行的 docker 守护程序挂载 cgroups 的错误。
  • 正确初始化日志配置。

客户:

  • 当有默认格式时,请正确处理标志。-qdocker ps

联网

  • 使用 netlink 修复几个极端情况。

贡献

  • 修复了 bash 补全的几个问题。

1.8.1 (2015-08-12)

分配

  • 修复了推送多个标签会导致图片无效的问题

1.8.0 (2015-08-11)

分配

  • 可信的 pull、push 和 build,默认处于禁用状态
  • 使 tar 层在注册表之间具有确定性
  • 不允许删除正在运行的容器的镜像
  • 检查要加载的标签名称是否为有效的摘要
  • 允许一个字符存储库名称
  • 为无效的标签名称添加更准确的错误描述
  • 使构建缓存忽略 mtime

命令行界面

  • 添加了对 DOCKER_CONFIG/--config 以指定配置文件目录的支持
  • 为 docker inspect 命令添加 --type 标志
  • 向 with 添加格式选项docker ps--format
  • 替换为 new 子命令docker -ddocker daemon
  • Zsh 完成更新和改进
  • 向 bash 完成添加一些缺失的事件
  • 支持基路径为docker -H
  • 验证 status= filter 到 docker ps
  • 当容器位于 docker ps 中的 --net=host 中时显示
  • 扩展 docker inspect 以导出与图形驱动程序相关的镜像元数据
  • Restore --default-gateway{,-v6} 守护进程选项
  • 在 docker ps 中添加缺少的未发布端口
  • 允许 duration 字符串以 --since/--until 的形式出现docker events
  • 在 中公开更多挂载信息docker inspect

运行

  • 添加新的 Fluentd 日志记录驱动程序
  • 允许从本地文件加载docker import
  • 通过 UDP 为 GELF 添加日志记录驱动程序
  • 允许将文件从主机复制到容器docker cp
  • 将音量驱动程序从实验提升为主控
  • 为 json-file 日志驱动程序添加翻转选项,以及 --log-driver-opts 标志
  • 添加内存交换优化选项
  • 在获得特权时删除 cgroup 只读标志
  • 将 readonly 容器的 /proc、/sys 和 /dev 设为 readonly
  • 默认添加 cgroup 绑定挂载
  • 叠加层:导出容器和镜像的元数据docker inspect
  • Devicemapper:外部设备激活
  • Devicemapper:启动时比较基础设备的 uuid
  • 从注册表密码套件列表中删除 RC4
  • 添加 syslog-facility 选项
  • LXC execdriver 与最新 LXC 版本的兼容性
  • 将 LXC execriver 标记为已弃用(将在迁移到 runc 时删除)

插件

  • 单独的插件套接字和规范位置
  • 允许 TLS 连接到插件

Bug 修复

  • 将缺少的 'Names' 字段添加到 /containers/json API 输出中
  • 拉动时可以安全地制作悬垂的镜像docker rmi
  • Devicemapper:将默认 basesize 更改为 100G
  • Go Scheduler 同步问题。Mutex 和 gcc
  • 修复了搜索 API 端点因 AuthConfig 为空而出现紧急情况的问题
  • 正确设置镜像规范名称
  • 仅在使用 lxc 驱动程序时检查 dockerinit
  • 修复 nproc 的 ulimit 使用
  • 如果指定了 -i,--interactive,则始终附加 STDIN
  • 保存容器状态失败时显示错误消息
  • 修复了 --bridge=none 上被视为禁用网络的错误假设
  • 检查主机配置中的端口规范是否无效
  • 修复 --net=host 模式的端点离开失败
  • 修复容器未运行时统计 API 中的 goroutine 泄漏
  • 在读取 apparmor 文件之前检查 apparmor 文件
  • 修复 DOCKER_TLS_VERIFY 被忽略的问题
  • 启动时将 umask 设置为默认值
  • 更正 pause 和 unpause 未运行的容器的消息
  • 调整容器创建中不允许的 CpuShares
  • ZFS:正确应用 selinux 上下文
  • 显示空字符串,而不是在 IP opt 为 nil 时显示
  • docker kill当容器未运行时返回错误
  • 修复 COPY/ADD quoted/json 格式
  • 修复 goroutine leak on logs -f with no output
  • 删除无效 hostport 上 nat 包中的 panic
  • 修复 Fedora 22 中的容器链接
  • 修复使用超出分配范围的默认网关导致的错误
  • 在 inspect 命令中格式化时间,模板为 RFC3339Nano
  • 使注册管理机构客户端接受 2xx 和 3xx http 状态响应为成功
  • 修复了导致守护程序崩溃的竞争问题,并按特定顺序下载某些层失败。
  • 修复 docker ps 格式无效时的错误。
  • 删除冗余的 ip forward 检查。
  • 修复了尝试将镜像推送到存储库镜像的问题。
  • 修复了在出现初始化问题时清理网络入口点时出现的错误。

1.7.1 (2015-07-14)

运行

  • 修复默认用户生成 exec 进程docker exec
  • Make to not 配置网桥--bridge=none
  • 正确发布网络统计信息
  • 修复具有静态二进制文件的隐式 devicemapper 选择
  • 修复间歇性挂起的套接字连接
  • 修复 CentOS/RHEL 6.6 上的桥接接口创建
  • 修复添加到 resolv.conf 的本地 dns 查找
  • 修复 copy 命令挂载卷
  • 修复使用 --volumes-from 挂载的卷中的读/写权限

远程 API

  • 修复 Command 和 Entrypoint 的解组
  • 设置支持的最低客户端版本限制
  • 验证端口规范
  • 当连接/重新连接失败时返回正确的错误

分配

  • 修复拉取私有镜像
  • 修复注册表 V2 和 V1 之间的回退

1.7.0 (2015-06-16)

运行

  • 实验性功能:支持进程外卷插件
  • 可以使用守护进程的标志禁用用户空间代理,以支持发夹 NAT--userland-proxy=false
  • 该命令支持使用标志来指定新的进程所有者exec-u|--user
  • 可以使用 和 标志在守护进程范围内指定容器的默认网关--default-gateway--default-gateway-v6
  • CPU CFS (Completely Fair Scheduler) 配额可以使用docker run--cpu-quota
  • 容器块 IO 可以在 使用docker run--blkio-weight
  • ZFS 支持
  • 该命令支持参数docker logs--since
  • UTS 命名空间可以与主机共享docker run --uts=host

质量

  • 作为 libnetwork 工作的一部分,网络堆栈被完全重写
  • 引擎内部重构
  • 卷代码被完全重写以支持插件的工作
  • 将SIGUSR1发送到守护进程将转储所有 goroutines 堆栈而不退出

  • 支持环境变量的 ${variable:-value} 和 ${variable:+value} 语法
  • 支持资源管理标志 、 、 、 、--cgroup-parent--cpu-period--cpu-quota--cpuset-cpus--cpuset-mems
  • Git 上下文随分支和目录的变化
  • .dockerignore 文件支持排除规则

分配

  • 客户端对 v2 镜像的支持对官方注册表的支持

错误修复

  • 现在支持 firewalld,并将在可用时自动使用
  • 递归挂载 --device

1.6.2 (2015-05-13)

运行

  • 还原禁止挂载到 /sys 的更改

1.6.1 (2015-05-07)

安全

  • 修复读/写 /proc 路径 (CVE-2015-3630)
  • 禁止 VOLUME /proc 和 VOLUME / (CVE-2015-3631)
  • 修复打开文件描述符 1 的问题 (CVE-2015-3627)
  • 修复容器重生时允许本地权限提升的符号链接遍历 (CVE-2015-3629)
  • 禁止挂载 /sys

运行

  • 更新 AppArmor 策略以不允许挂载

1.6.0 (2015-04-07)

建筑工人

  • 从镜像 ID 构建镜像
  • 构建具有资源约束的容器,即docker build --cpu-shares=100 --memory=1024m...
  • commit --change在提交镜像时应用指定的 Dockerfile 指令
  • import --change在导入镜像时应用指定的 Dockerfile 指令
  • 使用 CTRL-C 取消构建时,构建不再在后台继续

客户

  • Windows 支持

运行

  • 容器和镜像标签
  • --cgroup-parent用于指定父 cgroup 以将容器 cgroup 放置在其中
  • 记录驱动程序、 、 或json-filesyslognone
  • 按 ID 拉取镜像
  • --ulimit在容器上设置 ulimit
  • --default-ulimit选项,该选项适用于所有创建的容器(并被 on run 覆盖)--ulimit

1.5.0 (2015-02-10)

建筑工人

  • Dockerfile 用于给定的 Dockerfile 可以使用标志指定docker build-f
  • Dockerfile 和 .dockerignore 文件本身可以作为 .dockerignore 文件的一部分排除,从而防止对这些文件的修改使 ADD 或 COPY 指令缓存失效
  • ADD 和 COPY 指令接受相对路径
  • Dockerfile 指令现在被解释为无基说明符FROM scratch
  • 提高公开大量端口时的性能

  • 允许仅对 Windows 进行客户端集成测试
  • 将针对 Docker 守护程序的 docker-py 集成测试作为我们测试套件的一部分

包装

  • 支持新版注册表 HTTP API
  • 加快镜像处理具有大多数已存在图层的镜像docker push
  • 修复了通过代理联系私有注册表的问题

远程 API

  • 新终端节点将流式传输实时容器资源指标,并且可以使用命令docker stats
  • 可以使用新终端节点和关联的命令重命名容器renamedocker rename
  • 容器端点 显示此容器中运行的命令的 IDinspectexec
  • 容器终端节点显示 Docker 自动重启容器的次数inspect
  • 终端节点可以流式传输新类型的事件:“OOM”(容器因内存不足而死亡)、“exec_create”和“exec_start”events
  • 修复了返回的字符串字段,这些字段包含数字字符,错误地省略了双引号周围

运行

  • Docker 守护程序具有完整的 IPv6 支持
  • 该命令可以使用该标志来使用主机 PID 命名空间,例如,可以使用容器化调试工具调试主机进程docker run--pid=host
  • 该命令可以使用标志将容器的根文件系统挂载为 readonly,这可以与卷结合使用,以强制容器的进程仅写入将要持久化的位置docker run--read-only
  • 使用标志时,可以限制容器总内存使用情况docker run--memory-swap
  • devicemapper 存储驱动程序的主要稳定性改进
  • 更好地与主机系统集成:容器在重新启动时将反映对主机文件的更改/etc/resolv.conf
  • 更好地与主机系统集成:每个容器的 iptable 规则被移动到 DOCKER 链
  • 修复了容器在内存不足时退出以返回无效退出代码的问题

其他

  • 连接到 Docker 守护程序时,客户端会适当考虑 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY 环境变量

1.4.1 (2014-12-15)

运行

  • 修复了 create 后 volumes-from 和 bind mounts 未被执行的问题

1.4.0 (2014-12-11)

自 1.3.0 以来的显著功能

  • 将 key=value 标签设置为守护进程(如 所示),应用了 新的 daemon 标志docker info-label
  • 在 Dockerfile 中添加对以下形式的支持:ENVENV name=value name2=value2...
  • 新的 Overlayfs 存储驱动程序
  • docker info现在返回一个 AND 字段IDName
  • 按事件名称、容器或镜像筛选事件
  • docker cp现在支持从容器卷复制
  • Fixed ,因此在覆盖现有 镜像。docker tag--force

1.3.3 (2014-12-11)

安全

  • 修复绝对符号链接处理中的路径遍历漏洞 (CVE-2014-9356)
  • 修复 xz 镜像存档的解压缩,防止权限提升 (CVE-2014-9357)
  • 验证镜像 ID (CVE-2014-9358)

运行

  • 修复了镜像存档读取缓慢的问题

客户

  • 修复与 stdin 重定向相关的回归
  • 修复 destination 为当前目录时的回归docker cp

1.3.2 (2014-11-20)

安全

  • 修复 tar breakout 漏洞
  • 提取现在是沙盒 chroot
  • 安全性选项不再提交到镜像

运行

  • 修复 中的死锁docker ps -f exited=1
  • 修复引用启动失败的容器时的错误--volumes-from

注册表

  • --insecure-registry现在接受 CIDR 表示法,例如 10.1.0.0/16
  • IP 在 127.0.0.0/8 范围内的私有注册表不需要该标志--insecure-registry
  • 启用镜像时跳过实验性注册表 v2 API

1.3.1 (2014-10-28)

安全

  • 防止客户端、守护程序和注册表回退到< TLS 1.0 的 SSL 协议
  • 通过证书验证与注册表建立安全的 HTTPS 连接,除非指定,否则无需 HTTP 回退--insecure-registry

运行

  • 修复无法共享卷的问题

客户

  • 修复未自动设置的问题--iptables=false--ip-masq=false
  • 将 docker run 输出修复为非 TTY stdout

建筑工人

  • 修复环境变量的转义$
  • 修复小写 Dockerfile 指令的问题onbuild
  • 将环境变量扩展限制为 、 和ENVADDCOPYWORKDIREXPOSEVOLUMEUSER

1.3.0 (2014-10-14)

自 1.2.0 以来的显著功能

  • Docker 允许您在现有容器内运行其他进程exec
  • Docker 使您能够通过 CLI 创建容器,而无需执行进程create
  • --security-opts允许用户自定义容器标签和 AppArmor 配置文件的选项
  • Docker 过滤器ps
  • 对 COPY/ADD 的通配符支持
  • 将生产 URL 从 get.docker.io 移动到 get.docker.com
  • 在有效 CIDR 内的网桥上分配 IP 地址
  • 使用 drone.io 进行 PR 和 CI 测试
  • 能够设置官方注册表镜像
  • 能够使用 docker 保存多个镜像save

1.2.0 (2014-08-20)

运行

  • 使 /etc/hosts /etc/resolv.conf 和 /etc/hostname 在运行时可编辑
  • 使用策略自动重启容器
  • 对大型临时文件使用 /var/lib/docker/tmp
  • --cap-add并调整所需的 Linux 功能--cap-drop
  • --device使用容器中的设备

客户

  • docker search在私有注册表上
  • 将筛选器添加到exiteddocker ps --filter
  • docker rm -f现在是杀人而不是停止
  • 在标志中支持 IPv6 地址--dns

代理

  • 在单独的进程中代理实例
  • UDP 代理上的小错误修复

1.1.2 (2014-07-23)

运行

  • 修复现有容器的端口分配
  • 修复 containers 在 daemon restart 时重新启动的问题

包装

  • 修复 Debian 上的 /etc/init.d/docker 问题

1.1.1 (2014-07-09)

建筑工人

  • 修复 ADD 问题

1.1.0 (2014-07-03)

自 1.0.1 以来的显著功能

  • 添加支持.dockerignore
  • 暂停容器docker commit
  • --taildocker logs

建筑工人

  • 允许 tar 文件作为 的上下文docker build
  • 修复Dockerfiles

运行

  • 整体性能改进
  • 允许作为源/docker run -v
  • 修复端口分配
  • 修复docker save
  • 将链接信息添加到docker inspect

客户

  • 改进命令行解析docker commit

远程 API

  • 改进 和 endpoints 的状态代码startstop

1.0.1 (2014-06-19)

自 1.0.0 以来的显著功能

  • 增强 LXC 驱动程序的安全性

建筑工人

  • 传递给孙子的修复指令ONBUILD

运行

  • 修复事件订阅
  • 使用主机网络修复 /etc/hostname 文件
  • Allow 和-h--net=none
  • 修复 中的热插拔设备问题--privileged

客户

  • 修复包含事件的工件
  • 修复带有空标志的 panic
  • 在 Mac OS X 上修复docker cp

杂项

  • 修复 Mac OS X 上的编译
  • 修复多个比赛

1.0.0 (2014-06-09)

自 0.12.0 以来的显著功能

  • 生产支持

0.12.0 (2014-06-05)

自 0.11.0 以来的显著功能

  • 40+ 对稳定性、性能和可用性的各种改进
  • 新的 Dockerfile 指令,允许将本地文件从上下文复制到容器中,而无需提取该文件是否为 tar 文件COPY
  • 从主机继承文件权限ADD
  • 允许使用 cgroup freezer 暂停和取消暂停容器的新命令pauseunpause
  • 该命令具有用于筛选镜像列表的 / 选项images-f--filter
  • 在构建失败后添加以进行清理--force-rm
  • 将远程 API 中的 JSON 键标准化为 CamelCase
  • 从 docker run 拉取现在采用 tag (如果未指定)latest
  • 增强 Linux 功能和设备节点的安全性

0.11.1 (2014-05-07)

注册表

  • 修复推送和拉取到私有注册表

0.11.0 (2014-05-07)

自 0.10.0 以来的显著功能

  • SELinux 对挂载和进程标签的支持
  • 链接的容器可以通过主机名访问
  • 使用 net 标志允许高级网络配置,例如主机联网,以便容器可以使用主机的网络接口--net
  • 将 ping 终端节点添加到远程 API 以对 Docker 守护程序进行运行状况检查
  • 现在可以使用可选时间戳返回日志
  • Docker 现在可以与支持 SHA-512 的注册表一起使用
  • 支持多个 registry 端点以允许 registry 镜像

0.10.0 (2014-04-08)

建筑工人

  • 修复在一行上打印多条消息的问题。修复了构建期间损坏的输出。
  • 按照容器根目录中的符号链接获取 ADD 构建说明。
  • 修复 EXPOSE 缓存。

文档

  • 将 的新选项 添加到文档中。docker ps
  • 将 的选项添加到文档中。docker restart
  • 更新 --iptables 和 --ip-forward 的守护进程文档和帮助消息。
  • 更新了 apt-cacher-ng 文档示例。
  • 从文档中删除 --mtu 的重复描述。
  • 将缺少的 -t 和 -v for 添加到文档中。docker images
  • 将修复程序添加到 cli 文档。
  • 更新 libcontainer 文档。
  • 更新文档中的镜像以删除对 AUFS 和 LXC 的引用。
  • 更新文档中的 nodejs_web_app 以使用新的 epel RPM 地址。
  • 修复容器安全性的外部链接。
  • 更新远程 API 文档。
  • 将镜像大小添加到历史文档中。
  • 在 redis 示例中明确绑定到所有接口。
  • 在 1.10 远程 API 中记录 DisableNetwork 标志。
  • 仅限 lxc 的文档。--lxc-conf
  • 添加 Chef 使用文档。
  • 为具有多个 的镜像添加示例 。docker load
  • 解释文档中的作用。docker run -a

贡献

  • 将 DOCKER_LOGFILE 的变量添加到 sysvinit 中,并在打开日志文件时使用 append 而不是 overwrite。
  • 修复 init 脚本 cgroup 挂载解决方法,使其与 cgroupfs-mount 更相似,从而正常工作。
  • 从 upstart host-integration 示例中删除 inotifywait hack,因为它不再需要了。
  • 将 check-config 脚本添加到 contrib。
  • 修复鱼壳完成问题。

  • 清理 “make test” 的 “go test” 输出,使其更具可读性/可扫描性。
  • 从 hack/make/test 中排除更多 “definitely not unit tested Go source code” 目录。
  • 构建时生成 md5 和 sha256 哈希,并通过 hack/release.sh 上传。
  • 在 Ubuntu PPA 中包含贡献的补全。
  • 添加 cli 集成测试。
  • 对 hack 脚本进行调整,使其更简单。

远程 API

  • 添加对 API 的 TLS 身份验证支持。
  • 将 git clone 从 daemon 移动到 client。
  • 修复 docker cp 中的内容类型检测。
  • 将 API 拆分为 2 个 go 包。

运行

  • 支持发夹 NAT,无需通过 Docker 服务器。
  • devicemapper:删除不存在的设备时立即成功。
  • DeviceMapper:改进 DeviceMapper 设备的处理(添加每个设备的锁定、增加睡眠时间和睡眠时解锁)。
  • devicemapper:将 waitClose 中的超时时间增加到 10 秒。
  • devicemapper:确保我们干净地关闭了 thin pool。
  • devicemapper:将信息(而不是哈希值)传递给 activateDeviceIfNeeded、deactivateDevice、setInitialized、deleteDevice。
  • devicemapper:避免 AB-BA 死锁。
  • devicemapper:使 Shutdown 更好/更快。
  • 改进了 mflag 中的 Alpha 排序。
  • 删除手动 http cookie 管理,因为正在使用 cookiejar。
  • 在 Darwin 上使用 BSD 原始模式。修复 nano、tmux 等。
  • 为客户端添加 FreeBSD 支持。
  • 将 auth 包合并到 registry 中。
  • 为 -t on 添加弃用警告。docker pull
  • 删除 goroutine error 泄漏。
  • 更新 parseLxcInfo 以符合新的 lxc1.0 格式。
  • 修复 darwin 上的 attach exit。
  • 改进弃用消息。
  • 重试以检索图层元数据最多 5 次。docker pull
  • 仅取消共享 execin 的 mount 命名空间。
  • 提交时合并现有配置。
  • 禁用守护程序启动超时。
  • 修复问题 #4681:在禁用网络时添加环回接口。
  • 为问题 #4681 添加失败的测试用例。
  • 将 SIGTERM 发送到 child,而不是 SIGKILL。
  • 即使未处于调试模式,也要显示驱动程序和内核版本。docker info
  • 始终对 libcontainer 进行符号链接 /dev/ptmx。这修复了与控制台相关的问题。
  • 修复了因缺少 /etc/apparmor.d 而导致的问题。
  • 创建容器失败时,不要留下空的 cidFile。
  • 如果 cgroups 尚未挂载,则自动挂载它们。
  • 使用 mock 进行搜索测试。
  • 更新为所有位置的双破折号。
  • 将 .dockerenv 解析移动到 lxc 驱动程序。
  • 将容器中的所有 bind-mounts 移动到命名空间内。
  • 不要对容器使用单独的绑定挂载。
  • 始终对 libcontainer 进行符号链接 /dev/ptmx。
  • 不要为其他司机杀死 pid。
  • 向 libcontainer 添加初始日志记录。
  • 在 中按端口排序。docker ps
  • 将网络驱动程序移动到运行时顶级包中。
  • 将 --no-prune 添加到 。docker rmi
  • 在 中添加自退出以来的时间。docker ps
  • GraphDriver:添加构建标签。
  • 防止分配先前分配的端口并防止改善端口分配。
  • 在 中添加对 --since/--before 的支持。docker ps
  • 清理容器停止。
  • 添加对可配置的 dns 搜索域的支持。
  • 添加对相对 WORKDIR 指令的支持。
  • 为 docker save 添加 --output 标志。
  • 删除配置合并中的 DNS 条目重复。
  • 将 cpuset.cpus 添加到 cgroups 和本机驱动程序选项。
  • 删除 docker-ci。
  • 推广 btrfs。Btrfs 不再被视为实验性。
  • 将 --input 标志添加到 。docker load
  • 当现有网桥与 IP 地址不匹配时返回错误。
  • 在解析行继续符之前去除注释,以避免将指令解释为注释。
  • 修复了 TestOnlyLoopbackExistsWhenUsingDisableNetworkOption 以忽略“DOWN”接口。
  • 添加 cgroups 的 systemd 实现,并使容器显示为 systemd 单元。
  • 修复未指定存储库时的提交和导入问题。
  • 将 /var/lib/docker 重新挂载为 --private 以修复扩展问题。
  • 在对远程注册表执行 ping 操作时使用环境的代理。
  • 降低无害错误的错误级别。
  • 允许 --volumes-from 为单个文件。
  • 修复 StdCopy 中的扩展缓冲区。
  • 设置错误,而不考虑 attach 或 stdin。这将修复 #3364。
  • 添加了对 --env-file 的支持,以从文件中加载环境变量。
  • 符号链接 /etc/mtab 和 /proc/mounts。
  • 允许推送单个标签。
  • 在关闭时干净地关闭容器,并永远等待容器关闭。这使得 container shutdown on daemon shutdown 可以通过 SIGTERM 正常工作。
  • 在启动已在运行的容器时不要引发错误。
  • 修复动态端口分配限制。
  • 从 libcontainer 中删除 setupDev。
  • 将 API 版本添加到 .docker version
  • 接收到信号时返回正确的退出代码,并使 SIGQUIT 退出而不进行清理。
  • 修复 --volumes-from 挂载失败。
  • 允许非特权容器创建设备节点。
  • 由于对托管服务的外部依赖性,跳过登录测试。
  • 弃用 和 .docker images --treedocker images --viz
  • 弃用 。docker insert
  • 包括 apparmor 的基本抽象。这修复了 Ubuntu 14.04 上一些与 apparmor 相关的问题。
  • 在推送时通过 HTTP 按 401 时添加特定的错误消息。
  • 修复绝对音量检查。
  • 从配置中删除 volumes-from。
  • 将 DNS 选项移动到 hostconfig。
  • 更新 libcontainer 的 apparmor 配置文件。
  • 为 添加弃用通知。docker commit -run

0.9.1 (2014-03-24)

建筑工人

  • 修复在一行上打印多条消息的问题。修复了构建期间损坏的输出。

文档

  • 修复容器安全性的外部链接。

贡献

  • 修复 init 脚本 cgroup 挂载解决方法,使其与 cgroupfs-mount 更相似,从而正常工作。
  • 将 DOCKER_LOGFILE 的变量添加到 sysvinit 中,并在打开日志文件时使用 append 而不是 overwrite。

  • 构建时生成 md5 和 sha256 哈希,并通过 hack/release.sh 上传。

远程 API

  • 修复 中的内容类型检测。docker cp

运行

  • 在 Darwin 上使用 BSD 原始模式。修复 nano、tmux 等。
  • 仅取消共享 execin 的 mount 命名空间。
  • 重试以检索图层元数据最多 5 次。docker pull
  • 提交时合并现有配置。
  • 修复 monitor 中的 panic。
  • 禁用守护程序启动超时。
  • 修复问题 #4681:在禁用网络时添加环回接口。
  • 为问题 #4681 添加失败的测试用例。
  • 将 SIGTERM 发送到 child,而不是 SIGKILL。
  • 即使未处于调试模式,也要显示驱动程序和内核版本。docker info
  • 始终对 libcontainer 进行符号链接 /dev/ptmx。这修复了与控制台相关的问题。
  • 修复了因缺少 /etc/apparmor.d 而导致的问题。
  • 创建容器失败时,不要留下空的 cidFile。
  • 改进弃用消息。
  • 修复 darwin 上的 attach exit。
  • DeviceMapper:改进 DeviceMapper 设备的处理(添加每个设备的锁定、增加睡眠时间、睡眠时解锁)。
  • devicemapper:删除不存在的设备时立即成功。
  • devicemapper:将 waitClose 中的超时时间增加到 10 秒。
  • 删除 goroutine error 泄漏。
  • 更新 parseLxcInfo 以符合新的 lxc1.0 格式。

0.9.0 (2014-03-10)

建筑工人

  • 避免在构建过程中进行额外的挂载/卸载。这修复了构建过程中与挂载/卸载相关的错误。
  • 向 docker build --rm 添加错误。这将添加缺少的错误处理。
  • 禁止链接的 onbuild 和 triggers。onbuild fromonbuild maintainer
  • 将 的 设为默认值。--rmdocker build

文档

  • 通过 https 下载适用于 Mac 的 docker 客户端二进制文件。
  • 更新安装说明和描述的标题。
  • 添加升级 boot2docker 的说明。
  • 在 OS X 安装文档中添加端口转发示例。
  • 尝试解开存储库和注册表。
  • 更新文档以了解有关 .docker ps
  • 更新 sshd 示例以使用 Dockerfile。
  • 重新设计了一些示例,包括 Python 示例。
  • 更新文档以包含容器生命周期的说明。
  • 更新 docs 文档以讨论 docs 分支。
  • 不要跳过证书检查来举例并使用HTTPS。
  • 恢复 memory and swap accounting 部分,该部分在删除内核页面时丢失。
  • 解释 DNS 警告以及如何在运行和使用本地名称服务器的系统上修复它们。

贡献

  • 添加了对 mkimage-debootstrap 的 Tanglu 支持。
  • 添加 SteamOS 对 mkimage-debootstrap 的支持。

  • 在运行集成测试时获取包覆盖率。
  • 删除 Vagrantfile。它被 boot2docker 取代。
  • 修复 aufs 不可用的系统上的测试。
  • 更新打包说明并删除对 lxc 的依赖。

远程 API

  • 将特定于 API 的代码移动到 api 包中。
  • 修复 API 的标头内容类型。使所有端点使用正确的内容类型。
  • 修复注册表身份验证并删除CmdPush和CmdPull的ping调用。
  • 向 JSON 流函数添加换行符。

运行

  • 不要从 CLI 对注册表执行 ping 操作。对注册表的所有请求都流经守护程序。
  • 检查 lxc 驱动程序中是否返回 nil 信息。这修复了旧 lxc 版本的 panic。
  • Devicemapper:清理并修复卸载。修复了导致卸载间歇性失败的两个问题。
  • Devicemapper:删除设备时删除目录。删除设备时不会留下目录。
  • Devicemapper:开启 skip_block_zeroing。通过不对块进行清零来提高性能。
  • Devicemapper:修复关机警告。修复了有关池设备删除的关闭警告。
  • 确保 docker cp stream 已正确关闭。修复了文件未被 复制的问题。docker cp
  • 停止设为 default to 并删除 tcp 的默认端口。tcp://127.0.0.1:4243
  • 在 中修复。这又开始工作了。--rundocker commitdocker commit --run
  • 修复自定义网桥相关选项。这将使自定义网桥再次工作。
  • 挂载绑定 PTY 作为容器控制台。这允许 tmux/screen 运行。
  • 添加纯 Go libcontainer 库,以便仅使用 Linux 内核的功能运行容器。
  • 添加使用 libcontainer 的本机 exec 驱动程序,并将其设为默认 exec 驱动程序。
  • 添加了对处理存档中的扩展属性的支持。
  • 将容器 MTU 设置为与主机 MTU 相同。
  • 为图层添加简单的 sha256 校验和以加快速度。docker push
  • 改进内核版本解析。
  • 允许标志分组 ()。docker run -it
  • 删除 chroot exec 驱动程序。
  • 修复 divide by zero 以修复 panic。
  • 重写。docker rmi
  • 使用 lxc 1.0.0 修复 docker 信息。
  • 使用 apparmor 修复 fedora tty。
  • 不要总是附加 env vars,将 defaults 替换为 config 中的 vars。
  • 修复 goroutine 泄漏。
  • 切换到 Go 1.2.1。
  • 修复唯一约束错误检查。
  • 处理 Docker 数据目录和 TMPDIR 的符号链接。
  • 为标志添加弃用警告(-flag 已弃用,取而代之的是 --flag)
  • 为本机执行驱动程序添加 apparmor 配置文件。
  • 将特定于系统的代码从 archive 移动到 pkg/system。
  • 修复 (issue #3336) 的重复信号。docker run -i -t
  • 返回 lxc 的正确进程 pid。
  • 添加 -G 选项以指定 unix 套接字所属的组。
  • 添加标志以强制删除正在运行的容器。-fdocker rm
  • 当 docker 守护程序重新启动时,杀死 ghost 容器并重新启动所有 ghost 容器。
  • 添加环境变量,使 Docker 在 root 位于 ramdisk 上时工作。DOCKER_RAMDISK

0.8.1 (2014-02-18)

建筑工人

  • 避免在构建过程中进行额外的挂载/卸载。这将删除导致 devicemapper 出现问题的不需要的挂载/卸载操作
  • 修复 ADD of tar 文件的回归问题。这将阻止 Docker 从本地文件系统中解压缩通过 ADD 添加的 tarball
  • 向 添加错误。这增加了一个缺失错误检查,以确保检测到并报告删除容器的失败docker build --rm

文档

  • 更新问题提交说明
  • 警告不要对 Docker 的存储文件夹使用符号链接
  • 将 Firefox 示例替换为 IceWeasel 示例
  • 使用 Dockerfile 重写 PostgreSQL 示例并为其添加更多详细信息
  • 改进 OS X 文档

远程 API

  • 修复低于 1.7 版本损坏的镜像 API
  • 对返回 JSON 的所有 API 端点使用正确的编码
  • 将远程 API 客户端移动到 api/
  • 使用通用套接字等待对 API 的调用进行队列

运行

  • 修复对网桥和自定义网桥的自定义设置的使用
  • 重构 devicemapper 代码以避免许多 mount/unmount 争用条件和失败
  • 删除两个在某些情况下可能导致 Docker 崩溃的 panic
  • 不要从 CLI 客户端 ping 注册表
  • 为 devicemapper 启用 skip_block_zeroing。这会阻止 devicemapper 始终将整个块归零
  • 修复 --run 在 .这使得 docker commit 存储在镜像配置中docker commit--run
  • 删除 devicemapper 设备时删除目录。这将清理剩余的挂载目录
  • Drop NET_ADMIN 非特权容器的功能。非特权容器无法更改其网络配置
  • 确保流已正确关闭docker cp
  • 避免在容器注册期间进行额外的挂载/卸载。这将删除导致 devicemapper 出现问题的不需要的挂载/卸载操作
  • 停止允许 tcp:// 作为绑定到 127.0.0.1:4243 的默认 tcp bin 地址,并删除默认端口
  • 挂载绑定 PTY 作为容器控制台。这允许 tmux 和 screen 在容器中运行
  • 清理存档关闭。这修复并改进了存档处理
  • 修复 temp 目录符号链接的系统上的引擎测试
  • 添加用于保存和加载的测试方法
  • 避免在重新启动容器时暂时卸载容器。这修复了重启期间 devicemapper 的争用
  • 从 GitHub 存储库构建时支持子模块
  • Quote volume path 以允许空格
  • 修复远程 tar ADD 行为。这修复了导致 Docker 提取 tarball 的回归

0.8.0 (2014-02-04)

自 0.7.0 以来的显著功能

  • 可以更快地删除镜像和容器

  • 现在,使用 docker build 从源构建镜像的速度要快得多

  • Docker 守护进程的启动和停止速度要快得多

  • 通过流式传输文件而不是在内存中缓冲文件、修复内存泄漏和修复各种次优内存分配,减少了许多常见操作的内存占用

  • 修复了几个竞争条件,使 Docker 在非常高的并发负载下更加稳定。这使得 Docker 更稳定,不太可能崩溃,并减少许多常见操作的内存占用

  • 现在,所有打包操作都构建在 Go 语言的标准 tar 实现之上,该实现与 Docker 本身捆绑在一起。这使得打包在主机发行版之间更具可移植性,并解决了由不同 tar 发行版之间的怪癖和不兼容引起的几个问题

  • 由于更积极地释放系统资源,Docker 现在可以优雅地创建、删除和修改更多的容器和镜像。例如,存储驱动程序 API 现在允许 Docker 对驱动程序创建的挂载进行引用计数 随着 docker 测试的网络和执行子系统的不断变化,这些领域已成为重构的重点。通过将这些子系统移动到单独的包中,我们可以测试、分析和监控这些包的覆盖率和质量

  • 许多组件被分成更小的子包,每个子包都有一个专用的测试套件。因此,代码经过了更好的测试,更具可读性,并且更易于更改

  • ADD 指令现在支持缓存,这避免了在源内容未更改时一次又一次地不必要地重新上传相同的源内容

  • 新的 ONBUILD 指令将向您的镜像添加一个“触发器”指令,当该镜像用作另一个构建的基础时,该指令将在稍后执行

  • Docker 现在附带了一个实验性存储驱动程序,该驱动程序使用 BTRFS 文件系统进行写入时复制

  • Docker 在 Mac OS X 上得到官方支持

  • Docker 守护程序支持 systemd 套接字激活

0.7.6 (2014-01-14)

建筑工人

  • 不要在构建上下文之外遵循符号链接

运行

  • 指定 ro 时重新挂载 bind 挂载
  • 使用 https 获取 docker 版本

其他

  • 内联 test.docker.io 指纹
  • 将 ca-certificates 添加到打包文档中

0.7.5 (2014-01-09)

建筑工人

  • 禁用构建压缩。占用更多空间,但上传速度更快
  • 修复某些路径的 ADD 缓存
  • 不要从 git build 压缩存档

文档

  • 修复 GROUP add 示例中的错误
  • 确保 GPG 指纹在文档中内联
  • 提供有关为 DCO 设置提交签名的更具体建议

运行

  • 修复拼写错误的容器名称
  • 禁用网络时不添加主机名
  • 按日期从缓存中返回最新的镜像
  • 从 docker wait 返回所有错误
  • 将 Content-Type 标头 “application/json” 添加到 GET /version 和 /info 响应

其他

  • 将 DCO 更新到版本 1.1
  • 更新 Makefile 以使用 “docker:GIT_BRANCH” 作为生成的镜像名称
  • 更新 Travis 以检查新的 1.1 DCO 版本

0.7.4 (2014-01-07)

建筑工人

  • 修复 的 ADD 缓存问题。前缀路径
  • 通过恢复稀疏文件 tar 选项修复 docker 在 devicemapper 上构建
  • 修复文件缓存问题并防止错误的缓存命中
  • 在解组 CMD 和 ENTRYPOINT 时使用相同的错误处理

文档

  • 简化和精简 Amazon Quickstart
  • 安装说明使用无前缀的 Fedora 镜像
  • GCE 上 Docker 的 mtu 标志更新说明
  • 将 Ubuntu Saucy 添加到安装
  • 修复了 master 而不是 latest 上的错误版本警告

运行

  • 仅当我们需要计算镜像大小时,才获取镜像的 rootfs
  • 正确处理取消映射 UDP 端口
  • 使 CopyFileWithTar 使用管道而不是缓冲区,以节省 docker 构建的内存
  • 修复登录消息,显示 pull 而不是 push
  • 通过删除 “SOURCE” 提示并提及 STDIN 来修复 “docker load” 帮助
  • 将空白 -H 选项默认为相同,因为未发送 -H
  • 将 cgroups 实用程序提取到自己的子模块

其他

  • 添加 Travis CI 配置以验证 DCO 和 gofmt 要求
  • 添加开发者来源证书文本
  • 升级 VBox Guest 添加
  • 在 ping 注册管理机构服务器时检查独立头文件

0.7.3 (2014-01-02)

建筑工人

  • 更新 ADD 以根据添加内容的哈希值使用镜像缓存
  • 为空 Dockerfile 添加错误消息

文档

  • 更新文档以在屏幕变宽时变宽
  • 添加有关在使用原始二进制文件时需要安装 LXC 的信息
  • 更新 Fedora 文档以解开 docker 和 docker.io 冲突
  • 添加有关在多个 GCE 区域中使用新标志的说明-mtu
  • 添加 FrugalWare 安装说明
  • 添加更完整的docker run
  • 修复用于创建和启动特权容器的 API 文档
  • 在 “/containers/create” 上添加缺少的 “name” 参数文档
  • 添加提及 of 作为检查一些必要的内核配置的方法lxc-checkconfig
  • 使用 1.7 文档中添加的一些内容更新 1.8 API 文档

  • 将缺少的 libdevmapper 依赖项添加到 packagers 文档中
  • 将最低 Go 要求更新为 Go 1.2+ 的硬线
  • 对 Vagrantfile 的许多小改进
  • 添加了在编译时自定义 dockerinit 搜索位置的功能(仅由需要非标准位置的平台的打包者非常谨慎地使用)
  • 添加 coverprofile 生成报告
  • 添加到我们的 Go 构建标志中,无需手动重新编译 stdlib-a
  • 更新 Dockerfile,使其更具规范性,并在构建过程中减少虚假警告
  • 修复一些其他进度条显示问题docker pull
  • 迁移 “pkg” 文件夹下的更多杂项软件包
  • 更新 TextMate 突出显示,以便为名为 “Dockerfile” 的文件自动启用
  • 在公共 “contrib/syntax” 目录下重新组织语法高亮显示文件
  • 更新 install.sh 脚本 ( https://get.docker.io/) 以在 busybox 在 Ubuntu/Debian 安装结束时无法下载或运行时不会失败
  • 在 bash 补全中添加对容器名称的支持

包装

  • 为 Darwin 添加官方 Docker 客户端二进制文件 (Mac OS X)
  • 删除空的 “Vendor” 字符串,并在 deb 包上添加 “License”
  • 在 deb 包中添加 “/etc/default/docker” 的存根版本

运行

  • 更新层应用程序以就地提取 tar,从而在处理白屏时避免文件改动
  • 修复 tar 处理中 mtime 比较的许可性(因为 GNU tar 和 Go tar 尚不支持亚秒级 mtime 精度)
  • 在纯 Go 中重新实现可以更一致地工作,甚至在 Docker-in-Docker 中(从而消除某些版本的docker toplxc-ps)
  • 更新的工作方式类似于为缺失部分插入默认值-H unix://-H tcp://
  • 修复有关 dockerinit 以及已删除或替换的 docker 或 dockerinit 文件的更多边缘情况
  • 更新容器名称验证以包含“.”
  • 修复使用符号链接或非绝对路径作为参数以按预期工作的问题-g
  • 更新以处理 LXC 之外的外部挂载,修复许多小的挂载怪癖,并使未来的执行后端和其他功能更简单
  • 更新以在docker images -tree
  • 将 MTU 设置从 LXC 配置移动到直接使用 netlink
  • 为外部 tar 调用添加选项,以实现更高效的备用文件处理-S
  • 将 arch/os 信息添加到 User-Agent 字符串中,尤其是对于注册表请求
  • 向 Docker 守护进程添加用于配置 MTU 的选项-mtu
  • 修复了在出现错误时以非零退出代码退出的问题docker build
  • 添加环境变量以配置客户端标志,而无需为每次调用手动指定它DOCKER_HOST-H

0.7.2 (2013-12-16)

运行

  • 使用标准正则表达式在创建容器时验证容器名称
  • 将最大镜像深度从 42 增加到 127
  • 继续将 api 端点移动到作业 api
  • 添加了 -bip 标志,以允许通过 CIDR 指定动态网桥 IP
  • 在某些系统上未启用 IPv6 时允许创建网桥
  • 从 dockerinit 中设置主机名和 IP 地址
  • 从 dockerinit 中删除功能
  • 当镜像存在符号链接时修复主机上的卷
  • 如果任何容器依赖于镜像,即使容器未运行,也可以防止删除镜像
  • 更新 docker push 以使用新的进度显示
  • 使用 os.lstat 允许在检查卷时挂载 unix 套接字
  • 调整对非活跃用户登录的处理
  • 在 devicemapper 中为旧内核添加缺失的定义
  • 允许在没有容器验证的情况下取消标记操作
  • 将身份验证配置添加到 docker build

文档

  • 添加有关 Docker 日志记录的更多信息
  • 添加 RHEL 文档
  • 添加用于更改容器中运行的 CMD 的直接示例
  • 更新 Arch 安装文档
  • 添加有关 Trusted Builds 的部分
  • 添加网络文档页面

其他

  • 添加新的 cover bundle 以提供代码覆盖率报告
  • 将集成测试单独放在 bundle 中
  • 让 Tianon 成为 hack 维护者
  • 更新 mkimage-debootstrap 进行更多调整以保持镜像较小
  • 使用 https 获取安装脚本
  • 现在 Go 1.2 已经发布,删除了供应商的 dotcloud/tar

0.7.1 (2013-12-05)

文档

  • 将 @SvenDowideit 添加为文档维护者
  • 添加链接示例
  • 添加有关 ambassador 模式的文档
  • 添加 Google Cloud Platform 文档
  • 添加 dockerfile 最佳实践
  • RHEL 的更新文档
  • 注册表的更新文档
  • 更新 Postgres 示例
  • Ubuntu 安装的更新文档
  • 改进远程 api 文档

运行

  • 将 hostconfig 添加到 docker inspect
  • 实现以流式传输日志docker log -f
  • 添加 env 变量以禁用内核版本警告
  • 将 -format 添加到docker inspect
  • 支持文件的 bind-mount
  • 修复 RHEL 上的网桥创建
  • 修复镜像大小计算
  • 确保即使网桥已经存在,也会调用 iptables
  • 修复 stderr only attach 的问题
  • 销毁容器时删除 init 层
  • 修复不同接口上的相同端口绑定
  • docker build现在返回正确的退出代码
  • 修复显示正确的端口docker port
  • docker build现在检查 dockerfile 是否存在客户端
  • docker attach现在返回正确的退出代码
  • 当容器不存在时删除 name 条目

注册表

  • 改进进度条,添加下载的 ETA
  • 同时拉取现在等待第一个拉取完成,而不是失败
  • 推送到注册表时仅标记顶层镜像
  • 修复离线镜像传输问题
  • 修复了无法在注册表的密码中使用 ':' 的问题

其他

  • 添加用于调试的 pprof 处理程序
  • 创建 Makefile
  • 使用现在包含 fix 的 stdlib tar
  • 改进 make.sh 测试脚本
  • 在守护进程上处理 SIGQUIT
  • 在测试期间禁用 verbose
  • 升级到 go1.2 以获得官方版本
  • 改进单元测试
  • 现在,即使一个测试失败,测试套件也会运行所有测试
  • 在 Go 中重构 C (Devmapper)
  • 修复 OS X 编译

0.7.0 (2013-11-25)

自 0.6.0 以来的显著功能

  • 存储驱动程序:从 aufs、device-mapper 或 vfs 中进行选择。
  • 标准 Linux 支持:docker 现在可以在未修改的 Linux 内核和所有主要发行版上运行。
  • 链接:通过将容器相互连接来组成复杂的软件堆栈。
  • 容器命名:通过为容器命名来组织容器。
  • 高级端口重定向:为每个接口指定端口重定向,或将敏感端口保持私有。
  • 离线传输:将镜像推送和拉取到文件系统中,而不会丢失信息。
  • 质量:许多错误修复和小的可用性改进。测试覆盖率显著提高。

0.6.7 (2013-11-21)

运行

  • 提高稳定性,修复一些竞争条件
  • 删除容器的卷时跳过挂载的卷。
  • 修复图层大小计算:正确处理硬链接
  • 使用 docker cp 的工作路径 CONTAINER:PATH
  • 修复 tmp dir 永不清理
  • 加速 docker ps
  • 有关名称冲突的更多信息性错误消息
  • 修复名称服务器正则表达式
  • 始终返回长 ID
  • 修复容器重启争用情况
  • 在 docker stop 上保留已发布的端口;Docker 启动
  • 修复 Fedora 上的容器网络
  • 正确地向 iptables 表达 “any address”
  • 修复重新连接到 ghost 容器时的网络设置
  • 如果正在运行的容器使用镜像,则防止删除
  • 锁定图形中的读取操作

远程 API

  • 在 docker rmi 上返回完整 ID

客户

  • 将 -tree 选项添加到镜像
  • 离线镜像传输
  • 使用错误时以状态 2 退出,并在 stderr 上显示使用情况
  • 不要将 SIGCHLD 转发到容器
  • 对 docker 事件使用字符串时间戳 -since

其他

  • 更新到 1.2rc5
  • 为 upstart 添加 /etc/default/docker 支持

0.6.6 (2013-11-06)

运行

  • 确保容器名称在寄存器上
  • 修复 /etc/hosts 中的回归
  • 在图形中为写入操作添加锁定
  • 检查端口是否有效
  • 修复 ghost 容器网络的重启运行时错误
  • 添加更多颜色和动物以增加生成名称的池
  • 修复 docker inspect 中的问题
  • 逃脱 apparmor 禁闭
  • 使用文件设置环境变量。
  • 防止 docker insert 擦除某些内容
  • 防止 CreateBridgeIface 中的 DNS 服务器冲突
  • 在服务器端验证绑定挂载
  • 在 docker build 中使用父镜像配置
  • 修复 /etc/hosts 中的回归

客户

  • 添加 -P 标志以发布所有公开的端口
  • 将 -notrunc 和 -q 标志添加到 docker 历史记录
  • 修复 docker 提交、标记和导入的使用情况
  • 在 docker 搜索中添加星标、受信任的构建和库标志
  • 使用 tty 修复 docker 日志

远程 API

  • 立即使 /events API 发送标头
  • 不拆分最后一列 docker top
  • 向历史记录添加大小

其他

  • Contrib: 桌面集成。Firefox 用例。
  • Dockerfile:升级到 go1.2rc3

0.6.5 (2013-10-29)

运行

  • 现在可以命名容器
  • 现在可以将容器链接在一起以进行服务发现
  • 'run -a'、'start -a' 和 'attach' 可以将信号转发到容器,以便更好地与流程监督器集成
  • 重启后自动启动崩溃的容器
  • 将 IP、端口和 proto 公开为容器链接的单独环境变量
  • 允许将端口发布到特定 IP
  • 默认情况下禁止容器间通信
  • 忽略 Container.Attach 中 stdin 的 ErrClosedPipe
  • 删除未使用的字段 kernelVersion
  • 修复了在容器中挂载 /mnt 的子目录时出现的问题
  • 修复在删除镜像期间取消标记的问题
  • 检查 syscall 的返回值。在 dockerinit 中更改工作目录时的 Chdir

客户

  • 仅在需要时将 stdin 传递给 hijack,以避免关闭管道错误
  • 在命令行方法调用中使用较少的反射
  • 在启动容器后(而不是之前)监控 tty 大小
  • 删除无用的操作系统。Exit() 调用。致命

  • 添加适用于 Debian 的初始 init 脚本库和更安全的 Ubuntu 打包脚本
  • 添加 -p 选项以使用 http_proxy 调用 debootstrap
  • 使用 $sh_c 更新 install.sh 以获取 modprobe 的 sudo/su
  • 更新所有 mkimage 脚本以使用 --numeric-owner 作为 tar 参数
  • 更新 hack/release.sh 进程以自动调用 hack/make.sh 并在构建和测试问题上保释

其他

  • 文档:修复示例中 nc 的标志
  • 测试:删除警告并防止挂载问题
  • 测试:更改 tty 调整大小的逻辑以避免在测试中出现警告
  • 生成器:使用详细输出修复 docker build 中的争用条件
  • 注册表:修复 PushImageJSONIndex 方法的内容类型
  • Contrib: 改进帮助工具以生成 Debian 和 Arch linux 服务器镜像

0.6.4 (2013-10-16)

运行

  • 添加 Start() 失败时容器的清理
  • 向 utils/stdcopy.go 添加更好的注释
  • 添加 utils。Errorf 用于错误日志记录
  • 将 -rm 添加到 docker run 中,以便在退出时删除容器
  • 删除实际上不是错误的错误消息
  • 修复卷docker rm
  • 修复 HTTP 正文可能无法关闭的一些错误情况
  • 修复 dockercfg 文件错误的 panic
  • 使用 -i 修复 attach 行为
  • 记录状态中的终止时间。
  • 使用空字符串,以便 TempDir 自动使用操作系统的临时目录
  • 确保关闭网络分配器
  • 默认自动重启容器
  • 将供应商 kr/pty 提交 3b1f6487b(syscall.O_NOCTTY)
  • lxc:允许在容器中使用 set_file_cap 功能
  • 仅将 run -rm 移动到 cli
  • 拆分 stdout stderr
  • 始终为容器创建新会话

测试

  • 添加聚合的 docker-ci 电子邮件报告
  • 添加清理以删除剩余的容器
  • 向 docker-ci 添加 nightly release
  • 围绕 auth 添加更多测试。解析身份验证配置
  • 删除测试中的一些错误
  • 在 TCP 和 UDP 代理终止时捕获 errClosing 错误
  • 仅使用 TESTFLAGS='-run TestName' make.sh 运行某些测试
  • 阻止 docker-ci 测试关闭 PR
  • 将 panic 替换为 log。在测试中致命
  • 增加 TestRunDetach 超时

文档

  • 添加 Docker 基础架构文档的初稿
  • 将 devenvironment 链接添加到 CONTRIBUTING.md
  • 添加到 Ubuntu 文档apt-get install curl
  • 添加导出限制的说明
  • 添加 .dockercfg 文档
  • 移除 Gentoo 安装说明 #1422 解决方法
  • 修复 -v 选项的帮助文本
  • 修复 Ping 端点文档
  • 修复文档中 ADD 命令的参数名称
  • 修复 changelog 中具有讽刺意味的错别字
  • postgres 示例中的各种命令修复
  • 记录如何编辑和发布文档
  • postgresql_service.rst
  • 向投稿人阐明 LGTM 流程
  • 更正了包名称中的错误
  • 记录实际操作vagrant up
  • 改进文档搜索结果
  • 清理 API 1.5 文档中的空格
  • 在 MAINTAINER 示例电子邮件中使用尖括号
  • 更新 archlinux.rst
  • 对文档的新样式进行了更改。包括版本切换器。
  • 格式化,添加有关多行 json 的信息
  • 改进注册表和索引 REST API 文档
  • 将已弃用的升级参考替换为 docker-latest.tgz,该参考自 0.5.3 以来未更新
  • 更新 Gentoo 安装文档,现在我们已经在 portage 树中了
  • 为贡献者和维护者清理和重新组织文档和工具
  • protocoll -> 协议的细微拼写更正

贡献

  • 为 @honza 中的 Dockerfile 添加 vim 语法高亮显示
  • 添加 mkimage-arch.sh
  • 重新组织了贡献的完成脚本以添加 zsh 完成

  • 将 vagrant 用户添加到 docker 组
  • 为 “docker push” 添加正确的 bash 完成
  • 将 xz utils 添加为运行时 dep
  • 为 hack 和 Dockerfile 更新添加 #2010 的清理/重构部分
  • 添加 contrib/mkimage-centos.sh 回(来自 #1621)和相关文档链接
  • 添加 #1920 中的几个小的 make.sh 修复,并使输出更加一致和对贡献者友好
  • 向 hack/MAINTAINERS 添加@tianon
  • 提高 VirtualBox 的网络性能
  • 改进 install.sh 以便更多人可以使用,并尽可能使用官方安装方法(apt repo、portage tree 等)。
  • 修复 contrib/mkimage-debian.sh apt 缓存阻止
  • 将 Dockerfile.tmLanguage 添加到 contrib
  • 配置 FPM 以将 /etc/init/docker.conf 设为配置文件
  • 在 Vagrant VM 中启用 SSH 代理转发
  • contrib/mkimage-debian.sh 的几个小调整/修复

其他

  • 生成器:如果 mergeConfig 返回错误并修复重复错误消息,则中止构建
  • 打包:删除已弃用的打包目录
  • 注册表:登录时使用正确的身份验证配置。
  • 注册表:修复错误消息,使其与正则表达式相同

0.6.3 (2013-09-23)

包装

  • 安装 ubuntu 包时添加“docker”组
  • 更新 tar 供应商依赖项
  • 通过 HTTPS 下载 apt 密钥

运行

  • 仅对非 bindmount 卷的复制和更改权限
  • 允许多个 volumes-from
  • 修复从 STDIN 导入的 HTTP 问题

文档

  • 更新有关在构建后提取 docker 二进制文件的部分
  • 更新开发环境文档以获取新的构建过程
  • 从文档中删除 'base' image

其他

  • 客户端:修复分离问题
  • 注册表:更新正则表达式以匹配索引

0.6.2 (2013-09-17)

运行

  • 添加域名支持
  • 使用 path 实现镜像筛选。火柴
  • 删除不必要的警告
  • 删除 os/user 依赖项
  • 仅当配置存在时才挂载主机名文件
  • 处理命令中的信号docker login
  • UID 和 GID 现在也应用于卷
  • docker start设置出错时错误代码
  • docker run设置与启动的进程相同的错误代码

建筑工人

  • 添加 -rm 选项以删除中间容器
  • 允许 RUN 指令使用多行

注册表

  • 使用私有注册表实现登录
  • 修复推送问题

其他

  • 黑客:供应商所有依赖项
  • 远程 API:升级到 v1.5
  • 打包:将 hack/make.sh 分解为小脚本,每个“捆绑包”一个脚本:test、binary、ubuntu 等。
  • 文档:一般改进

0.6.1 (2013-08-23)

注册表

  • 在 API 调用中将 “meta” 标头传递给注册表

包装

  • 将正确的 upstart 脚本与新的构建工具一起使用
  • 使用 libffi-dev,不要从源构建它
  • 删除重复的 mercurial install 命令

0.6.0 (2013-08-22)

运行

  • 添加了 lxc-conf 标志以允许自定义 lxc 选项
  • 添加选项以设置工作目录
  • 向 LogEvent 测试添加镜像名称
  • 添加 -privileged 标志和相关测试、文档和示例
  • 向 /container//attach/ws 添加 websocket 支持
  • 在 net.ipv4.ip_forwarding = 0 时添加警告
  • 将主机名添加到环境
  • 在 中添加最后一个稳定版本docker version
  • 修复并行拉取中的争用条件
  • 修复 Graph ByParent() 以为每个父镜像生成子镜像列表。
  • 修复拼写错误:fmt。Sprint -> fmt.冲刺
  • 修复 docker build 中的小 \n 错误
  • 修复“在 /.dockerinit 处注入 dockerinit”
  • 修复 #910。将用户名打印到 docker info 输出
  • 使用 Go 1.1.2 for dockerbuilder
  • 在通道上使用 ranged for loop
  • 使用 utils.ParseRepositoryTag 而不是字符串。服务器中的 Split(name, “:”)。图片删除
  • 改进 CMD、ENTRYPOINT 和附加文档。
  • 改进带有套接字错误的连接消息
  • 仅在需要时加载 authConfig 并修复无用的 WARNING
  • 显示镜像缺失时使用的标记
  • 在创建卷之前应用 volumes-from
  • 使 docker 运行句柄 SIGINT/SIGTERM
  • 防止 .dockercfg 不可读时崩溃
  • 安装脚本应该通过 https 而不是 http 获取。
  • API,问题 1471:使用组获取套接字权限
  • 正确检测 IPv4 转发
  • 将 /dev/shm 挂载为 tmpfs
  • 从 http 切换到 https 以获得 get.docker.io
  • 让 userland 代理处理容器绑定流量
  • 更新 Docker CLI 以指定 “Host” 标头的值。
  • 更改网络范围以避免与 EC2 DNS 冲突
  • 减少 ping 注册表时的连接和读取超时
  • 并行拉取
  • 处理显示无掩码 IP 地址的 ip 路由
  • 允许没有 CMD 的 ENTRYPOINT
  • 解析 FQN 存储库名称时,始终将 localhost 视为域名
  • 重构校验和

文档

  • 添加 MongoDB 镜像示例
  • 添加有关创建和使用 docker 组的说明
  • 将 sudo 添加到示例,将 installation 添加到文档中
  • 添加 ufw 文档
  • 添加对 ps -a 的引用
  • 添加有关 Docker 通过 LXC 的高级工具的信息。
  • 修复 docker run -dns 文档中的拼写错误
  • 修复 ubuntu 安装指南中的拼写错误
  • 修复了有关添加 docker 组的文档
  • 更新默认 -H 文档
  • 使用依赖项更新自述文件以进行构建
  • 更新 amazon.rst 以说明在 ec2 上运行 Docker 不需要 Vagrant
  • 文档中的 PostgreSQL 服务示例
  • 建议默认安装 linux-headers。
  • 更改 Twitter 用户名
  • 阐明 Amazon EC2 安装
  • “Base” 镜像已弃用,不应再在文档中引用。
  • 关于官方支持的内核的移动说明
  • 解决了 Safari 中 logo 被挤压的问题

建筑工人

  • 添加 USER 指令执行 Dockerfile
  • 为 Buildfile 添加 workdir 支持
  • 为 docker build 添加无缓存
  • 修复 docker build 和 docker events 输出
  • 仅将已知指令计为构建步骤
  • 确保 build 中的 ENV 指令每次都执行一次提交
  • 禁止 docker build ADD 中的某些路径
  • 生成使用情况中的存储库名称(以及可选的标记)
  • 确保 ADD 将在 0755 中创建所有内容

远程 API

  • 按最近的创建日期对镜像进行排序。
  • 在 registry module 中重写不透明的请求
  • 在 /events 中添加镜像名称
  • 使用 mime pkg 解析 Content-Type
  • 650 HTTP 实用程序和用户代理字段

  • Bash 完成:将命令限制为相关状态的容器
  • 将 docker 依赖项覆盖率测试添加到 docker-ci 中

包装

  • Docker-brew 0.5.2 支持和内存占用减少
  • 将新的 docker 依赖项添加到 docker-ci 中
  • 还原 “docker.upstart: avoid spawning a process”sh
  • Docker-brew 和 Docker 标准库
  • 使用 docker 发布 docker
  • 修复 get.docker.io 生成的 upstart 脚本
  • 使文档能够生成手册页。
  • 在 Vagrant 中将 Bind 守护进程还原为 0.0.0.0。

注册

  • 改进 auth push
  • 注册表单元测试 + 模拟注册表

测试

  • 改进 TestKillDifferentUser 以防止 buildbot 超时
  • 修复 TestBindMounts 中的拼写错误(在没有镜像的情况下调用 runContainer)
  • 改进 TestGetContainersTop,使其不依赖于 sleep
  • 放宽 lo 接口测试以允许 iface 索引 != 1
  • 将注册表功能测试添加到 docker-ci
  • 在 server 和 utils 中添加一些测试

其他

  • Contrib: bash 完成脚本
  • 客户端:添加 docker cp 命令和复制 api 端点,以将容器文件/文件夹复制到主机
  • 当仅连接到 stdin 时,不从 stdout 读取

0.5.3 (2013-08-13)

运行

  • 使用 docker group 获取套接字权限
  • 在 upstart 脚本中生成 shell
  • 处理显示无掩码 IP 地址的 ip 路由
  • 将主机名添加到环境

建筑工人

  • 确保 build 中的 ENV 指令每次都执行一次提交

0.5.2 (2013-08-08)

  • 构建器:禁止 docker build ADD 中的某些路径
  • 运行时:更改网络范围以避免与 EC2 DNS 冲突
  • API:将守护进程更改为默认侦听 unix 套接字

0.5.1 (2013-07-30)

运行

  • 将 args 添加到psdocker top
  • 添加对容器 ID 文件(如 pidfile )的支持
  • 在默认环境中添加 container=lxc
  • 使用 和 支持无网络容器docker run -ndocker -d -b=none
  • Stdout/stderr 日志现在与 JSON 存储在同一个文件中
  • 默认情况下,分配 /16 IP 范围,并回退到 /24。尝试 12 个范围,而不是 3 个。
  • 将 .dockercfg 格式更改为 json,并支持多身份验证远程
  • 不从配置中覆盖卷
  • 修复 EXPOSE 覆盖问题

应用程序接口

  • Docker 客户端现在设置 useragent (RFC 2616)
  • 添加 /events 端点

建筑工人

  • ADD 命令现在可以理解 URL
  • CmdAdd 和 CmdEnv 现在遵循 Dockerfile 集的 ENV 变量
  • 在 ADD 指令中创建具有 755 而不是 700 的目录

  • 使用帮助程序简化单元测试
  • 改进 docker.upstart 事件
  • 将覆盖率测试添加到 docker-ci 中

0.5.0 (2013-07-17)

运行

  • 使用 'docker top' 列出容器内运行的所有进程
  • 主机目录可以使用 'docker run -v' 作为卷挂载
  • 容器可以公开公共 UDP 端口(例如,'-p 123/udp')
  • (可选)指定确切的公共端口(例如。'-p 80:4500')
  • 'docker login' 支持其他选项
  • 提交镜像时不要保存容器的主机名。

注册表

  • 受 Go 打包约定启发的新镜像命名方案允许注册表的任意组合
  • 修复将镜像上传到私有注册表时出现的问题

建筑工人

  • ENTRYPOINT 指令为容器设置默认二进制入口点
  • VOLUME 指令将容器的一部分标记为持久数据
  • 默认情况下,'docker build' 显示构建的完整输出

0.4.8 (2013-07-01)

  • 生成器:新的生成操作 ENTRYPOINT 将可执行入口点添加到容器中。- 运行时:修复了导致“docker run -d”不再打印容器 ID 的错误。
  • 测试:修复测试套件中的问题

0.4.7 (2013-06-28)

远程 API

  • 下载和上传大型文件时,进度条更新得更快
  • 修复可选 unix 套接字传输中的错误

运行

  • 改进内核版本的检测
  • 主机目录可以使用 'docker run -b' 作为卷挂载
  • 修复仅附加到 stdin 时的问题
  • 使用 'tar --numeric-owner' 可避免多个主机之间的 uid 不匹配

  • 改进测试套件和开发环境
  • 删除对 'os/user' 上单元测试的依赖

其他

  • 注册表:更轻松地推送/拉取到自定义注册表
  • 文档:添加术语部分

0.4.6 (2013-06-22)

  • 运行时:修复了导致创建空镜像(和卷)崩溃的错误。

0.4.5 (2013-06-21)

  • 构建器:“docker build git://URL”获取并构建远程 git 存储库
  • 运行时: 'docker ps -s' 可选择打印容器大小
  • 测试:改进和简化
  • 运行时:修复了 0.4.3 中引入的导致 logs 命令失败的回归问题。
  • 生成器:修复了对单个常规文件使用 ADD 时的回归问题。

0.4.4 (2013-06-19)

  • 生成器:修复了 0.4.3 中引入的回归问题,该回归导致在新客户端上构建失败。

0.4.3 (2013-06-19)

建筑工人

  • 本地文件的 ADD 将检测 tar 存档并解压缩它们
  • ADD 改进:使用 tar 进行复制 + 自动解压缩本地存档
  • ADD 使用 tar/untar 进行复制,而不是调用 'cp -ar'
  • 将 ADD 的行为修复为(大部分)反向兼容、可预测且有据可查。
  • 修复了在 ADD 是第一个命令时导致构建失败的错误
  • “docker build”的更好输出

运行

  • 删除 bsdtar 依赖项
  • 添加 unix 套接字和多个 -H 支持
  • 阻止 rm of running containers
  • 使用 go1.1 cookiejar
  • 修复与正在运行的 TTY 容器分离的问题
  • 禁止对单个镜像/存储库进行并行推送/拉取。修复#311
  • 修复附加时 Run 命令中的争用条件。

客户

  • 拉取中的 HumanReadable ProgressBar 大小
  • 修复 docker 版本的git commit输出

应用程序接口

  • 在历史记录 API 调用时发送所有标签
  • 向 history 命令添加标签查找。修复 #882

文档

  • 修复 irc bouncer 示例中缺少的命令

0.4.2 (2013-06-17)

  • 打包:用于解决 Ubuntu 错误的 Bumped 版本

0.4.1 (2013-06-17)

远程 API

  • 添加标志以启用跨域请求
  • 在 docker ps 和 docker images 中添加镜像和容器大小

运行

  • 使用“docker -d -dns”在主机范围内配置 dns 配置
  • 检测错误的 DNS 配置并将其替换为公共默认值
  • 允许 docker run
  • 您现在可以指定公共端口(例如:-p 80:4500)
  • 改进镜像删除功能,对未引用的父项进行垃圾回收

客户

  • 允许在检查中使用多个参数
  • 打印劫持前的容器 iddocker run

注册表

  • 添加对存储库名称的 regexp 检查
  • 将身份验证移至客户端
  • 删除拉取时的登录检查

其他

  • Vagrantfile:将 rest api 端口添加到 vagrantfile 的 port_forward
  • 升级到 Go 1.1
  • 生成器:不要以 \n 结尾t ignore last line in Dockerfile when it doesn

0.4.0 (2013-06-03)

建筑工人

  • Builder 简介
  • 'docker build' 从包含 Dockerfile 的源存储库逐层构建容器

远程 API

  • 远程 API 简介
  • 使用简单的 HTTP/json API 以编程方式控制 Docker

运行

  • 各种可靠性和可用性改进

0.3.4 (2013-05-30)

建筑工人

  • 'docker build' 从包含 Dockerfile 的源存储库逐层构建容器
  • 'docker build -t FOO' 将标签 FOO 应用于新构建的容器。

运行

  • 交互式 TTY 正确处理窗口大小调整
  • 修复层之间如何合并配置

远程 API

  • 在 'docker run' 上拆分 stdout 和 stderr
  • (可选)侦听不同的 IP 和端口(使用风险自负)

文档

  • 改进安装说明。

0.3.3 (2013-05-23)

  • 注册表:修复推送回归
  • 各种错误修复

0.3.2 (2013-05-09)

注册表

  • 改进校验和过程
  • 使用 size 在推送时有一个良好的进度条
  • 如果存在实际存档,请使用实际存档以加快推送速度
  • 修复推送时出现 400 错误

运行

  • 在提交时存储实际的存档

0.3.1 (2013-05-08)

建筑工人

  • 在 docker builder 中实现 autorun 功能
  • 向 docker builder 添加缓存
  • 添加对 docker builder 的支持,将本机 API 作为顶级命令
  • 在 docker builder 中实施 ENV
  • 在创建和添加 Case 的 Unit tests 之前检查命令是否存在
  • 使用任何空格而不是制表符

运行

  • 将 go 版本添加到调试信息
  • 内核版本 - 如果 flavor 为空,则不显示破折号

注册表

  • 添加 docker search 顶级命令以搜索存储库
  • 修复了对具有特定标签的官方镜像的拉取
  • 修复使用其他用户登录并尝试推送时出现的问题
  • 改进校验和 - 异步计算

镜像

  • 将镜像输出到点 (graphviz)
  • Fix ByParent 函数

文档

  • 新简介和高级概述
  • 添加 docker builder 的文档
  • docker 文档的 CSS 修复,使 REST API 文档看起来更好。
  • 修复 CouchDB 示例页眉错误
  • 修复 README 格式

其他

  • 网站:新的高级概述
  • Makefile:将 “go get” 换成 “go get -d”,尤其是在 go1.1rc 上编译
  • 打包:打包 ubuntu;issue #510: 使用 golang-stable PPA 包构建 docker

0.3.0 (2013-05-06)

运行

  • 修复命令存在检查
  • 字符串。Split 可能会在不匹配时返回空字符串
  • 修复 cgroup 内存不为

文档

  • 各种改进
  • 新示例:在 2 个 couchdb 数据库之间共享数据

其他

  • Vagrant:在 /etc/apt 中只使用一行 deb
  • 注册表:实施新注册表

0.2.2 (2013-05-03)

  • 支持数据卷 ('docker run -v=PATH')
  • 在容器之间共享数据卷 ('docker run -volumes-from')
  • 改进文档
  • 升级到 Go 1.0.3
  • 对贡献者的开发环境进行了各种升级

0.2.1 (2013-05-01)

  • 'docker commit -run' 将一个层与默认运行时选项捆绑在一起:命令、端口等。
  • 改进 Vagrant 的安装过程
  • 新的 Dockerfile 操作:“maintainer”
  • 新的 Dockerfile 操作:“expose”
  • 新的 Dockerfile 操作:“cmd”
  • 用于构建 Debian 基础层的 Contrib 脚本
  • 'docker -d -r':在守护进程启动时重启崩溃的容器
  • 运行时:提高测试覆盖率

0.2.0 (2013-04-23)

  • 运行时:幽灵容器可以被杀死并等待
  • 文档:更新安装说明
  • 打包:fix Vagrantfile
  • 开发:自动发布二进制文件和 Ubuntu 软件包
  • 添加更改日志
  • 各种错误修复

0.1.8 (2013-04-22)

  • 动态检测 cgroup 功能
  • 在内核 <3.8 上发出稳定性警告
  • 磁盘上的“docker push”缓冲区而不是内存
  • 修复已删除文件的“docker diff”
  • 修复 ghost 容器的 'docker stop'
  • 修复 pidfile 的处理
  • 各种错误修复和稳定性改进

0.1.7 (2013-04-18)

  • 容器端口在 localhost 上可用
  • “docker ps”显示已分配的 TCP 端口
  • 贡献者可以运行“make hack”来启动持续集成 VM
  • 简化 ubuntu 打包和上传
  • 各种错误修复和稳定性改进

0.1.6 (2013-04-17)

  • 使用 'docker commit -author' 为作者录制镜像

0.1.5 (2013-04-17)

  • 禁用独立模式
  • 将自定义 DNS 解析器与“docker -d -dns”结合使用
  • 检测虚影容器
  • 改进对缺失系统功能的诊断
  • 允许在编译时禁用内存限制
  • 添加 debian 打包
  • 文档:在 Arch Linux 上安装
  • 文档:在 Docker 上运行 Redis
  • 修复 lxc 0.9 兼容性
  • 自动加载 aufs 模块
  • 各种错误修复和稳定性改进

0.1.4 (2013-04-09)

  • 完全支持 TTY 仿真
  • 使用转义序列从 TTY 会话中分离C-p C-q
  • 各种错误修复和稳定性改进
  • 较小的 UI 改进
  • 自动创建我们自己的桥接接口 'docker0'

0.1.3 (2013-04-04)

  • 选择带有 '-p :P ORT' 的 TCP 前端端口
  • 图层格式已版本化
  • 流程管理器的重大可靠性改进
  • 各种错误修复和稳定性改进

0.1.2 (2013-04-03)

  • 使用 'docker run -h' 设置容器主机名
  • 运行时使用 'docker run -a [stdin[,stdout[,stderr]]]] 进行选择性附加
  • 各种错误修复和稳定性改进
  • UI 润色
  • 推/拉进度条
  • 默认使用 XZ 压缩
  • 使 IP 分配器惰性

0.1.1 (2013-03-31)

  • 为方便起见,显示速记 ID
  • 稳定流程管理
  • 层可以包含提交消息
  • 简化的“docker attach”
  • 修复对重新连接的支持
  • 各种错误修复和稳定性改进
  • 运行时自动下载
  • 推送时自动登录
  • 增强的文档

0.1.0 (2013-03-23)

首次公开发布

  • 实施注册表以推送/拉取镜像
  • TCP 端口分配
  • 修复 Linux 上的 termcaps
  • 添加文档
  • 使用 Vagrantfile 添加 Vagrant 支持
  • 添加单元测试
  • 添加存储库/标签以简化镜像管理
  • 改进层实现