Docker Engine发行说明
预计阅读时间:133分钟
1.13.1(2017-02-08)
重要说明:在Linux发行版中devicemapper
,默认存储驱动程序是,默认情况下使用overlay2
或overlay
(如果内核支持,则默认使用)。要使用devicemapper,您可以通过--storage-driver
daemon选项或通过在daemon.json
配置文件中设置“ storage-driver”来手动配置要使用的存储驱动程序。
重要事项:与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
要手动删除所有插件并解决此问题,请执行以下步骤:
- 从中删除plugins.json
/var/lib/docker/plugins/
。 - 重新启动Docker。验证Docker守护程序是否正确启动。
- 重新安装您的插件。
贡献者
远程API(v1.26)和客户端
- docker堆栈中的支持秘密与撰写文件#30144一起部署
运行
- 修复#30378中的尺寸问题
docker system df
- 修正
docker inspect
Swarm证书过期时的错误。#29246 - 修复v1插件上的死锁,并显示激活错误#30408
- 修复SELinux回归#30649
外挂程式
视窗
1.13.0(2017-01-18)
重要说明:在Linux发行版中devicemapper
,默认存储驱动程序是,默认情况下使用overlay2
或overlay
(如果内核支持,则默认使用)。要使用devicemapper,您可以通过--storage-driver
daemon选项或通过在daemon.json
配置文件中设置“ storage-driver”来手动配置要使用的存储驱动程序。
重要事项:与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
要手动删除所有插件并解决此问题,请执行以下步骤:
- 从中删除plugins.json
/var/lib/docker/plugins/
。 - 重新启动Docker。验证Docker守护程序是否正确启动。
- 重新安装您的插件。
建造者
- 添加功能以指定用作构建中的缓存源的映像。这些图像不需要具有本地父链,并且可以从其他注册表中拉出#26839
- (实验性)成功构建后,将选项添加到将图像层压缩到FROM图像中#22641
- 转义后用空行修复dockerfile解析器#24725
- 在#24978上添加步骤编号
docker build
- 添加对在图像生成期间压缩生成上下文的支持#25837
- 添加
--network
到docker build
#27702 - 修复
--label
标志docker build
和和#26027之间的不一致行为docker run
- 使用覆盖存储驱动程序时修复图像层不一致问题#27209
- 现在允许使用未使用的build-args。出现警告而不是错误,并且构建失败#27412
- 修复Windows上的构建器缓存问题#27805
USER
在Windows上的生成器中允许#28415- 在Windows上处理不区分大小写的env #28725
贡献者
- 添加对在PPC64LE #23438上为Ubuntu 16.04 Xenial构建docker debs的支持
- 添加对在s390x上为Ubuntu 16.04 Xenial构建docker debs的支持#26104
- 添加对在PPC64LE #28046上为Ubuntu 16.10 Yakkety Yak构建docker debs的支持
- 添加用于VMWare Photon OS #24116的RPM构建器
- 将外壳补全添加到tgz #27735
- 更新安装脚本以允许在中国使用镜像#27005
- 为Ubuntu 16.10 Yakkety Yak添加DEB构建器#27993
- 为Fedora 25 #28222添加RPM构建器
- 添加
make deb
对aarch64的支持#27625
分配
- 将公证人依赖项更新为0.4.2(完整的更新日志在此处)#27074
- 支持Windows docker / notary#970上的编译
- 客户端身份验证错误docker / notary#972的改进错误消息
- 支持查找
~/.docker/trust/private
目录中任意位置的密钥,而不仅仅是在docker / notary下~/.docker/trust/private/root_keys
或~/.docker/trust/private/tuf_keys
#981 - 以前,在进行任何错误更新时,客户端都会回退到缓存中。现在,只有在出现网络错误或服务器不可用或TUF数据丢失的情况下,我们才这样做。无效的TUF数据将导致更新失败-例如,如果存在无效的根轮换。码头工人/公证人#982
- 改进root验证和yubikey调试日志记录docker / notary#858 docker / notary#891
- 警告用于root或授权的证书是否接近到期的docker / notary#802
- 警告角色元数据是否临近到期的码头工人/公证人#786
- 修复密码短语检索尝试计数和终端检测docker / notary#906
- 当不同的用户将相同的层推送到经过身份验证的注册表时,避免不必要的Blob上传#26564
- 允许外部存储以获取注册表凭据#26354
记录中
- 标准化所有日志记录驱动程序中的默认日志记录标记值#22911
- 记录长日志行时提高性能和内存使用率#22982
- 为Windows启用Syslog驱动程序#25736
- 添加登录条目驱动程序#27471
- 更新了AWS日志驱动程序以支持标签#27707
- Unix套接字对fluentd #26088的支持
- 在Windows #28189上启用流利的日志记录驱动程序
- 在用作日志记录的字段名称时清理docker标签#23725
- 修复了
docker logs --tail
返回的行少于预期的行的问题#28203 - Splunk日志记录驱动程序:性能和可靠性方面的改进#26207
- Splunk日志记录驱动程序:可配置的格式,并跳过以验证连接#25786
联网
- 添加
--attachable
网络支持以使其docker run
能够在群体模式覆盖网络中工作#25962 - 使用#27917和# 28943中的
--publish
选项在服务中添加对主机端口PublishMode的支持docker service create
- 添加对Windows Server 2016覆盖网络驱动程序的支持(需要即将推出的ws2016更新)#28182
- 将默认
FORWARD
策略更改为DROP
#28257 - 添加对在Windows #22208上为预定义网络指定静态IP地址的支持
--publish
在docker run
不使用IPv6地址的情况下修复标志#27860- 修复带有面具的检查网络显示网关#25564
- 修复了网桥中的多个地址可能导致
--fixed-cidr
地址不正确的问题#26659 - 将创建时间戳记添加到
docker network inspect
#26130 - 显示
docker network inspect
群集覆盖网络中的对等节点#28078 - 对服务VIP地址#28019启用ping操作
外挂程式
- 将插件移出实验性#28226
- 添加
--force
在docker plugin remove
#25096 - 添加对动态重新加载授权插件的支持#22770
- 在#25556中添加描述
docker plugin ls
- 添加
-f
/--format
到docker plugin inspect
#25990 - 添加
docker plugin create
命令#28164 - 将请求的TLS对等证书发送到授权插件#27383
- 在群体模式下支持全局范围的网络和ipam插件#27287
- 拆分
docker plugin install
为两个API调用/privileges
和/pull
#28963
远程API(v1.25)和客户端
docker stack deploy
来自撰写文件的支持#27998- (实验性)实施检查点并还原#22049
- 将
--format
标志添加到docker info
#23808 --name
从#23830移除docker volume create
- 添加
docker stack ls
#23886 - 添加一个新的
is-task
ps过滤器#24411 - 将
--env-file
标志添加到docker service create
#24844 - 添加
--format
在docker stats
#24987 - 在群组节点#25214中设为
docker node ps
默认值self
- 添加
--group
在docker service create
#25317 - 添加
--no-trunc
到服务/节点/堆栈ps输出#25337 - 向其中添加日志,
ContainerAttachOptions
以便客户端可以在附加过程中请求检索容器日志#26718 - 允许客户端与旧服务器通话#27745
- 通知用户客户端正在进行容器移除#26074
- 添加
Isolation
到/ info端点#26255 - 添加
userns
到/ info端点#27840 - 不允许在服务端点中一次请求多个模式#26643
- 向/ containers / create API添加功能,以更精细,更安全的方式指定安装#22373
--format
向network ls
和添加标志volume ls
#23475- 允许顶级
docker inspect
命令检查任何类型的资源#23614 - --cpus标志添加到控制CPU资源
docker run
和docker create
,并加入NanoCPUs
到HostConfig
#27958 - 允许取消设置
--entrypoint
indocker run
或docker create
#23718 - 通过添加
docker image
和docker container
命令来重组CLI命令以提高一致性#26025 COMMAND
从service ls
输出#28029中删除列- 添加
--format
到docker events
#26268 - 允许在#26299上指定多个节点
docker node ps
- 在
docker images
输出#26303中将小数位数限制为2个小数 - 添加
--dns-option
到docker run
#28186 - 将图像ID添加到容器提交事件#28128
- 将外部二进制版本添加到Docker信息#27955
Manager Addresses
在#28042的输出中添加信息docker info
- 为#27872添加新的参考过滤器
docker images
运行
- 添加
--experimental
守护程序标志以启用实验性功能,而不是在单独的版本中运送它们#27223 - 添加
--shutdown-timeout
守护程序标志以指定默认超时(以秒为单位),以在守护程序退出之前正常停止容器#23036 - 添加
--stop-timeout
以指定单个容器停止的超时值(以秒为单位)#22566 - 添加一个新的守护进程的标志
--userland-proxy-path
,允许配置用户级代理,而不是使用硬编码docker-proxy
的$PATH
#26882 - 添加布尔标志
--init
上dockerd
并在docker run
使用TINI僵尸-收割init进程作为PID 1 #26061 #28037 - 添加新的守护程序标志,
--init-path
以允许配置docker-init
二进制文件的路径#26941 - 在配置#22337中添加对实时重新加载不安全注册表的支持
- 在Windows守护程序上添加对存储选择大小的支持#23391
docker run --rm
通过将其从客户端移动到守护程序来 提高可靠性#20848- 添加对
--cpu-rt-period
和--cpu-rt-runtime
标志的支持,从而CONFIG_RT_GROUP_SCHED
在内核中启用容器后允许容器运行实时线程#23430 - 允许平行停止,暂停,取消暂停#24761 / #26778
- 为overlay2实施XFS配额#24771
- 修复#24850中的部分/全部过滤器问题
service tasks --filter
- 允许引擎在用户名称空间内运行#25672
- 使用devicemapper graphdriver时,修复设备延迟删除与恢复设备之间的竞争条件#23497
docker stats
在Windows #25737中添加支持- 允许使用
--pid=host
和--net=host
时--userns=host
#25771 - (实验)添加指标(普罗米修斯)输出为基本
container
,image
和daemon
操作#25820 - 修复问题
docker stats
与NetworkDisabled=true
#25905 docker top
在Windows #25891中添加支持- 记录执行进程#27470的pid
- 通过#27599添加对查找用户/组的
getent
支持 - 添加新的
docker system
命令df
和prune
子系统的资源管理,以及docker {container,image,volume,network} prune
子#26108 #27525 / #27525 - 通过使用devicemapper在ENOSPC上将xfs max_retries设置为0,解决了无法停止或终止容器的问题#26212
- 修复了
docker cp
无法使用devicemapper复制到CentOS上容器的卷目录的问题#28047 - 促进overlay(2)graphdriver #27932
- 添加
--seccomp-profile
守护程序标志以指定seccomp配置文件的路径,该路径将覆盖默认的#26276 - 在修复ulimits
docker inspect
当--default-ulimit
设置在守护进程#26405 - 在较早版本的内核中进行构建时,添加解决覆盖问题的方法#28138
TERM
在#26461上添加环境变量docker exec -t
- 遵守#26464上的容器
--stop-signal
设置docker kill
群模式
- 添加秘密管理#27794
- 添加对模板服务选项(主机名,安装和环境变量)的支持#28025
- 在#26906的输出中显示端点模式
docker service inspect --pretty
docker service ps
通过缩短任务名称中的服务ID,使输出更可承受#28088- 制作
docker node ps
默认为当前节点#25214 - 添加
--dns
,--dns-opt
和--dns-search
服务创建。#27567 - 添加
--force
到docker service update
#27596 - 添加
--health-*
和--no-healthcheck
标志,以docker service create
和docker service update
#27369 - 添加
-q
到docker service ps
#27654 - 显示#27710中的全球服务数量
docker service ls
--name
从中删除标志docker service update
。该标志仅在上起作用docker service create
,因此已从update
命令中删除了#26988- 修复由于临时网络问题而导致工作节点无法恢复的问题#26646
- 添加对运行状况感知的负载平衡和DNS记录的支持#27279
- 添加
--hostname
到docker service create
#27857 - 添加
--host
到docker service create
,和--host-add
,--host-rm
以docker service update
#28031 --tty
在docker service create
/ #28076中添加标志update
- 自动检测,存储和公开节点IP地址,如管理员所看到的那样#27910
- 其余的管理员密钥和筏数据加密#27967
- 添加
--update-max-failure-ratio
,--update-monitor
和--rollback
标志,以docker service update
#26421 - 解决
docker swarm init
在容器内运行时地址自动发现的问题#26457 - (实验性的)添加
docker service logs
命令以查看服务的日志#28089 - 通过摘要将图像固定为
docker service create
和update
#28173 -f
为docker node rm --force
和添加短标记()和docker swarm leave --force
#28196- 添加选项以自定义Raft快照(
--max-snapshots
,--snapshot-interval
)#27997 - 如果被摘要固定,请勿重新推送图像#28265
- Windows的群模式支持#27838
- 允许在服务#28771上更新主机名
- 支持v2插件#29433
- 添加对服务的内容信任#29469
体积
- 在卷#21270上添加对标签的支持
- 添加对通过标签#25628过滤卷的支持
- 在其中添加一个
--force
标志,docker volume rm
以强制清除已删除的卷的数据#23436 - 增强功能
docker volume inspect
以显示创建卷时使用的所有选项#26671 - 添加对本地NFS卷的支持以解析主机名#27329
安全
弃用
- 将
docker daemon
命令标记为不推荐使用。守护程序将移至单独的二进制文件(dockerd
),应改为使用#26834 - 弃用未版本控制的API端点#28208
- 删除Ubuntu 15.10(Wily Werewolf)作为受支持的平台。Ubuntu 15.10已停产,并且不再接收更新#27042
- 删除Fedora 22作为支持的平台。Fedora 22已停产,并且不再接收更新#27432
- 删除Fedora 23作为支持的平台。Fedora 23已停产,并且不再接收更新#29455
- 弃用#27207
repo:shortid
上的语法docker pull
- 不建议不
d_type
使用overlay和overlay2存储驱动程序的支持文件系统#27433 MAINTAINER
在Dockerfile中弃用#25466- 弃用
filter
端点的参数/images/json
#27872 - 弃用设置重复的引擎标签#24533
- 弃用#28437中的“顶级”网络信息
NetworkSettings
1.12.6(2017-01-10)
重要信息:Docker 1.12随附了更新的systemd单元文件,用于基于rpm的安装(包括RHEL,Fedora,CentOS和Oracle Linux 7)。从较旧版本的Docker升级时,升级过程可能不会自动安装单元文件的更新版本,或者在以下情况下无法启动Docker服务:
- systemd单位文件(
/usr/lib/systemd/system/docker.service
)包含本地更改,或 - 存在一个systemd插入文件,该文件包含
-H fd://
在ExecStart
指令中
启动docker服务将产生错误:
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.
要解决此问题:
- 备份单元文件的当前版本,并将其替换为docker 1.12随附的 版本
Requires=docker.socket
从/usr/lib/systemd/system/docker.service
文件中删除指令(如果存在)-H fd://
从ExecStart
指令中删除(在主机文件中,以及在任何存在的插入文件中)。
完成这些更改后,运行sudo systemctl daemon-reload
,并sudo
systemctl restart docker
重新加载更改,然后(重新)启动docker守护进程。
注意:当您指定--ipv6
选项时,Docker 1.12.5将正确地验证提供了IPv6子网还是IPAM驱动程序可以提供一个子网。
如果您当前正在使用该--ipv6
选项而未指定该
--fixed-cidr-v6
选项,则Docker守护程序将拒绝以以下消息开头:
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
要解决此错误,请删除该--ipv6
标志(以保留与Docker 1.12.3及更早版本相同的行为),或提供一个IPv6子网作为该--fixed-cidr-v6
标志的值。
以类似的方式,如果在使用--ipv6
默认IPAM驱动程序创建网络时指定该标志,而未提供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
要解决此问题,请删除该--ipv6
标志(以保留与Docker 1.12.3及更早版本相同的行为),或提供一个IPv6子网作为该--subnet
标志的值
。
如果使用支持自动分配IPv6子网的外部IPAM驱动程序,则网络网络创建将成功。
运行
- 修复runC权限升级(CVE-2016-9962)
1.12.5(2016-12-15)
重要信息:Docker 1.12随附了更新的systemd单元文件,用于基于rpm的安装(包括RHEL,Fedora,CentOS和Oracle Linux 7)。从较旧版本的Docker升级时,升级过程可能不会自动安装单元文件的更新版本,或者在以下情况下无法启动Docker服务:
- systemd单位文件(
/usr/lib/systemd/system/docker.service
)包含本地更改,或 - 存在一个systemd插入文件,该文件包含
-H fd://
在ExecStart
指令中
启动docker服务将产生错误:
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.
要解决此问题:
- 备份单元文件的当前版本,并将其替换为docker 1.12随附的 版本
Requires=docker.socket
从/usr/lib/systemd/system/docker.service
文件中删除指令(如果存在)-H fd://
从ExecStart
指令中删除(在主机文件中,以及在任何存在的插入文件中)。
完成这些更改后,运行sudo systemctl daemon-reload
,并sudo
systemctl restart docker
重新加载更改,然后(重新)启动docker守护进程。
注意:当您指定--ipv6
选项时,Docker 1.12.5将正确地验证提供了IPv6子网还是IPAM驱动程序可以提供一个子网。
如果您当前正在使用该--ipv6
选项而未指定该
--fixed-cidr-v6
选项,则Docker守护程序将拒绝以以下消息开头:
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
要解决此错误,请删除该--ipv6
标志(以保留与Docker 1.12.3及更早版本相同的行为),或提供一个IPv6子网作为该--fixed-cidr-v6
标志的值。
以类似的方式,如果在使用--ipv6
默认IPAM驱动程序创建网络时指定该标志,而未提供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
要解决此问题,请删除该--ipv6
标志(以保留与Docker 1.12.3及更早版本相同的行为),或提供一个IPv6子网作为该--subnet
标志的值
。
如果使用支持自动分配IPv6子网的外部IPAM驱动程序,则网络网络创建将成功。
运行
- 修复发送标准输入关闭事件的比赛#29424
联网
贡献者
- 在达尔文上修复编译#29370
1.12.4(2016-12-12)
重要信息:Docker 1.12随附了更新的systemd单元文件,用于基于rpm的安装(包括RHEL,Fedora,CentOS和Oracle Linux 7)。从较旧版本的Docker升级时,升级过程可能不会自动安装单元文件的更新版本,或者在以下情况下无法启动Docker服务:
- systemd单位文件(
/usr/lib/systemd/system/docker.service
)包含本地更改,或 - 存在一个systemd插入文件,该文件包含
-H fd://
在ExecStart
指令中
启动docker服务将产生错误:
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.
要解决此问题:
- 备份单元文件的当前版本,并将其替换为docker 1.12随附的 版本
Requires=docker.socket
从/usr/lib/systemd/system/docker.service
文件中删除指令(如果存在)-H fd://
从ExecStart
指令中删除(在主机文件中,以及在任何存在的插入文件中)。
完成这些更改后,运行sudo systemctl daemon-reload
,并sudo
systemctl restart docker
重新加载更改,然后(重新)启动docker守护进程。
运行
- 解决了未删除卷元数据的问题#29083
- 异步关闭流,以防止持有容器锁#29050
- 为新创建的容器卷修复selinux标签#29050
- 删除主机名验证#28990
- 修复由IO种族引起的僵局#29095 #29141
- 如果容器正在重新启动,则返回一个空的统计信息#29150
- 修复卷存储锁定#29151
- 确保API #29150中的状态代码一致
- 修复overlay2中不正确的不透明目录权限#29093
- 检测插件内容并在#29297上
docker pull
报错
群模式
- 更新Swarmkit #29047
- Orchestrator / Global:修复更新docker / swarmkit#1760的死锁
- 在领导者切换时为现有网络docker / swarmkit#1773保留vxlan ID
- 拒绝未命名为“默认”的群规范#29152
联网
- 更新libnetwork #29004 #29146
- 修复嵌入式DNS docker / libnetwork#1561中的紧急情况
- 修复在全局范围网络docker / libnetwork#1564上传递--link-local-ip时的解组恐慌
- 修复网络插件返回nil StaticRoutes docker / libnetwork#1563时的紧急情况
- 修复docker / libnetwork#1555中的紧急情况
osl.(*networkNamespace).DeleteNeighbor
- 修复群组网络并发映射读/写docker / libnetwork#1570中的恐慌
- 在容器docker / libnetwork#1502中运行docker时允许加密网络
- 不要阻止IPv6池docker / libnetwork#1538的自动分配
- 设置Netlink调用docker / libnetwork#1557的超时
- 将网络本地存储超时增加到一分钟docker / libkv#140
- 修复docker / libnetwork#1556中的紧急情况
libnetwork.(*sandbox).execFunc
- 对于内部网络docker / libnetwork#1525,荣誉icc = false
记录中
- 更新系统日志日志驱动程序#29150
贡献者
1.12.3(2016-10-26)
重要信息:Docker 1.12随附了更新的systemd单元文件,用于基于rpm的安装(包括RHEL,Fedora,CentOS和Oracle Linux 7)。从较旧版本的Docker升级时,升级过程可能不会自动安装单元文件的更新版本,或者在以下情况下无法启动Docker服务:
- systemd单位文件(
/usr/lib/systemd/system/docker.service
)包含本地更改,或 - 存在一个systemd插入文件,该文件包含
-H fd://
在ExecStart
指令中
启动docker服务将产生错误:
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.
要解决此问题:
- 备份单元文件的当前版本,并将其替换为docker 1.12随附的 版本
Requires=docker.socket
从/usr/lib/systemd/system/docker.service
文件中删除指令(如果存在)-H fd://
从ExecStart
指令中删除(在主机文件中,以及在任何存在的插入文件中)。
完成这些更改后,运行sudo systemctl daemon-reload
,并sudo
systemctl restart docker
重新加载更改,然后(重新)启动docker守护进程。
运行
- 修复容器中环境功能的使用(CVE-2016-8867)#27610
- 防止libcontainerd Windows发生死锁#27136
- 修复CopyFileWithTar中的错误报告#27075
- 重启容器后将运行状况重置为开始#27387
- 正确处理存储目录#27609中的共享挂载传播
- 修复docker exec #27610
- 修复与容器事件日志#27693的向后兼容性
群模式
- 修复重启策略的转换#27062
- 更新Swarmkit #27554
- 避免重新启动已经重新启动的任务docker / swarmkit#1305
- 当他们使用不同的协议docker / swarmkit#1632时允许重复的发布端口
- 在服务docker / swarmkit#1657上允许多个随机分配的已发布端口
- 在初始化时发生分配错误时解决恐慌docker / swarmkit#1651
联网
- 更新libnetwork #27559
- 修复将沙箱序列化为字符串docker / libnetwork#1495的竞赛
- 在删除docker / libnetwork#1503期间修复种族
- 在网桥驱动程序docker / libnetwork#1504中撤销连接撤销时重置端点端口信息
- 修复网络代码docker / libnetwork#1507中的死锁
- 修复负载平衡器状态docker / libnetwork#1512中的竞赛
记录中
- 将fluent-logger-golang更新到v1.2.1 #27474
贡献者
1.12.2(2016-10-11)
重要信息:Docker 1.12随附了更新的systemd单元文件,用于基于rpm的安装(包括RHEL,Fedora,CentOS和Oracle Linux 7)。从较旧版本的Docker升级时,升级过程可能不会自动安装单元文件的更新版本,或者在以下情况下无法启动Docker服务:
- systemd单位文件(
/usr/lib/systemd/system/docker.service
)包含本地更改,或 - 存在一个systemd插入文件,该文件包含
-H fd://
在ExecStart
指令中
启动docker服务将产生错误:
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.
要解决此问题:
- 备份单元文件的当前版本,并将其替换为docker 1.12随附的 版本
Requires=docker.socket
从/usr/lib/systemd/system/docker.service
文件中删除指令(如果存在)-H fd://
从ExecStart
指令中删除(在主机文件中,以及在任何存在的插入文件中)。
完成这些更改后,运行sudo systemctl daemon-reload
,并sudo
systemctl restart docker
重新加载更改,然后(重新)启动docker守护进程。