Docker Engine v18.09.1 新版本特性解读,全新功能先睹为快(一)

简介: Docker Engine v18.09.1 上个月推出了 GA。社区版和企业版用户都可以使用它。它包含了缺陷修复程序,您可以在出于一致性和兼容性原因而无法快速采用新功能的环境中使用这些缺陷修复程序。

screenshot

出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五,与您不见不散!


Docker Engine v18.09.1 上个月推出了 GA。社区版和企业版用户都可以使用它。它包含了缺陷修复程序,您可以在出于一致性和兼容性原因而无法快速采用新功能的环境中使用这些缺陷修复程序。

screenshot

全新的 18.09 版本是一个对于 Docker 社区版引擎和 Docker企业版引擎来说一致的发布模型。新的版本控制方案是“YY.MM.x”,其中“x”是递增的补丁版本。它们将基于相同的代码库同时发布相同的“x”版本的补丁。


screenshot

2019年2月15日更新:修复 Docker 社区版引擎和 Docker企业版引擎的安全补丁

  • 更新 runc 以解决一个关键的漏洞,该漏洞允许特制容器获得主机管理权限;【CVE-2019-5736】
  • 使用 3.13 版本内核的 Ubuntu 14.04 用户需要升级到受支持的 Ubuntu 4.x 版本的内核;

Docker Engine v18.09.1 提供了许多新功能、改进和 Bug 修复。让我们来看看在升级到 Docker 18.09.1 版本时值得注意的主要功能列表:

  • Docker Engine v18.09.1 自带 containerd v1.2.2 版本;
  • BuildKit 0.3.3 脱离了实验模式,可以正式使用;
  • 支持在 Kubernetes 上使用 Compose;
  • 使用“docker info”命令可以公开产品信息;
  • 首次在 Windows 10 上实现进程隔离;
  • 支持使用 SSH 进行远程连接;
  • 支持 SSH 代理套接字转发;
  • 使用 BuildKit 时,支持“registry-mirrors”和“insecure-registries”;
  • 使用 BuildKit 时,支持使用“--secret”标记来增加构建时隐私;
  • 使用 BuildKit 时,支持“docker build -pull”命令;

Docker Engine v18.09.1 自带 containerd v1.2.2 版本

适用于 CE 和 EE 的 Docker Engine v18.09.2 版本均附带 containerd 1.2.2 版本。在 18.09 版本之前的 Docker 中,containerd 是由 Docker 引擎守护进程管理。在 Docker Engine 18.09 中,containerd 则是由 systemd 来管理。

screenshot

让我们尝试在最新的 Ubuntu 18.10 版本的虚拟机上安装最新的 Docker 18.09.2,并尝试验证 containerd 版本:

sudo curl -sSL https://get.docker.com/ | sh
# Executing docker install script, commit: 26dda3d
+ sudo -E sh -c apt-get update -qq >/dev/null
+ sudo -E sh -c apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
+ sudo -E sh -c curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" | apt-key add -qq - >/dev/null
Warning: apt-key output should not be parsed (stdout is not a terminal)
+ sudo -E sh -c echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu cosmic edge" > /etc/apt/sources.list.d/docker.list
+ sudo -E sh -c apt-get update -qq >/dev/null
+ sudo -E sh -c apt-get install -y -qq --no-install-recommends docker-ce >/dev/null
+ sudo -E sh -c docker version
Client:
 Version:          18.09.2
 API version:      1.39
 Go version:       go1.10.6
 Git commit:       6247962
 Built:            Sun Feb 10 04:13:46 2019
 OS/Arch:          linux/amd64
 Experimental:     false
 
Server: Docker Engine - Community
 Engine:
 Version:         18.09.2
 API version:     1.39 (minimum version 1.12)
 Go version:      go1.10.6
 Git commit:      6247962
 Built:           Sun Feb 10 03:42:13 2019
 OS/Arch:         linux/amd64
 Experimental:    false
If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:
 
 sudo usermod -aG docker robertsingh181
 
Remember that you will have to log out and back in for this to take effect!
 
WARNING: Adding a user to the "docker" group will grant the ability to run
        containers which can be used to obtain root privileges on the
        docker host.
        Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
        for more information.
@collabnix:~$ sudo usermod -aG docker robertsingh181

验证 Docker 版本

$sudo docker version
Client:
 Version:          18.09.2
 API version:      1.39
 Go version:       go1.10.6
 Git commit:       6247962
 Built:            Sun Feb 10 04:13:46 2019
 OS/Arch:          linux/amd64
 Experimental:     false
Server: Docker Engine - Community
 Engine:
 Version:         18.09.2
 API version:     1.39 (minimum version 1.12)
 Go version:      go1.10.6
 Git commit:      6247962
 Built:           Sun Feb 10 03:42:13 2019
 OS/Arch:         linux/amd64
 Experimental:    false

请注意:客户端和容器运行时现在位于 Docker Engine 18.09 中守护进程的独立包中。用户应同时安装和更新这三个软件包。从而获取最新的补丁版本。

例如,在 Ubuntu 上运行“sudo apt install docker-ce docker-ce-cli containerd.io”命令。

$ sudo dpkg --list | grep container
ii containerd.io                 1.2.2-3                            amd64       An open and reliable container runtime
ii docker-ce                     5:18.09.2~3-0~ubuntu-cosmic        amd64       Docker: the open-source application container engine
ii docker-ce-cli                 5:18.09.2~3-0~ubuntu-cosmic        amd64       Docker CLI: the open-source application container engine

验证 Containerd 版本

$ sudo containerd --help
NAME:
 containerd -
                 __       _                    __
_________ ____ / /_____ _(_)___ ___ _________/ /
/ ___/ __ \/ __ \/ __/ __ `/ / __ \/ _ \/ ___/ __ /
/ /__/ /_/ / / / / /_/ /_/ / / / / / __/ / / /_/ /
\___/\____/_/ /_/\__/\__,_/_/_/ /_/\___/_/  \__,_/
high performance container runtime
USAGE:
 containerd [global options] command [command options] [arguments...]
VERSION:
 1.2.2
COMMANDS:
  config   information on the containerd config
  publish  binary to publish events to containerd
  oci-hook provides a base for OCI runtime hooks to allow arguments to be injected.
  help, h  Shows a list of commands or help for one command
GLOBAL OPTIONS:
 --config value, -c value    path to the configuration file (default: "/etc/containerd/config.toml")
 --log-level value, -l value set the logging level [trace, debug, info, warn, error, fatal, panic]
 --address value, -a value   address for containerd's GRPC server
 --root value                containerd root directory
 --state value               containerd state directory
 --help, -h                  show help
 --version, -v               print the version
$ sudo ctr version
Client:
Version: 1.2.2
Revision: 9754871865f7fe2f4e74d43e2fc7ccd237edcbce
Server:
Version: 1.2.2
Revision: 9754871865f7fe2f4e74d43e2fc7ccd237edcbce

因为 containerd 在 v18.09.1 版本下由 systemd 管理,所以更改“docker.service systemd”挂载设置的任何自定义配置(例如:MountFlags = slave)都会破坏 Docker 引擎的守护进程和 containerd 之间的交互,您将无法启动容器。运行以下命令获取 docker.service 的 MountFlags 当前的属性值:

sudo systemctl show --property=MountFlags docker.service
MountFlags=

如果该命令输出的 MountFlags 为非空值,那么请更新配置,然后重启 docker 服务。

相关文章
|
11天前
|
Docker 容器
如何查看docker版本|12
如何查看docker版本|12
17 2
|
2月前
|
关系型数据库 MySQL Linux
一文教会你如何在Linux系统中使用Docker安装Mysql 5.7版本 【详细过程+图解】
这篇文章提供了在Linux系统中使用Docker安装Mysql 5.7版本的详细过程和图解,包括安装指定版本、创建实例、启动、使用Navicat连接测试、文件挂载与端口映射、进入容器、配置文件修改以及重新启动容器等步骤。
一文教会你如何在Linux系统中使用Docker安装Mysql 5.7版本 【详细过程+图解】
|
2月前
|
Ubuntu Linux Docker
弃用Docker Desktop:在WSL2中玩转Docker之Docker Engine 部署与WSL入门
弃用Docker Desktop:在WSL2中玩转Docker之Docker Engine 部署与WSL入门
673 4
|
2月前
|
运维 Shell Linux
运维专题.Docker功能权限(Capabilities)管理和查看
运维专题.Docker功能权限(Capabilities)管理和查看
57 1
|
2月前
|
Web App开发 关系型数据库 PHP
使用 Docker 快速搭建多版本 PHP 开发环境
使用 Docker 快速搭建多版本 PHP 开发环境
55 2
|
2月前
|
存储 弹性计算 Docker
深入探讨Docker的主要功能及其影响力
【8月更文挑战第24天】
27 0
|
2月前
|
Ubuntu Linux 测试技术
在 Ubuntu 上安装 Docker Engine
在 Ubuntu 上安装 Docker Engine
67 0
|
3月前
|
JSON 测试技术 数据安全/隐私保护
【Docker项目实战篇】Docker部署PDF多功能工具Stirling-PDF
【7月更文挑战第7天】Docker部署PDF多功能工具Stirling-PDF
262 1
|
4月前
|
Cloud Native 安全 Docker
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
|
4月前
|
应用服务中间件 网络安全 nginx
docker 搭建 最新版本的 gitlab,使用HTTPS访问,以及gitlab的基础使用讲解
docker 搭建 最新版本的 gitlab,使用HTTPS访问,以及gitlab的基础使用讲解
下一篇
无影云桌面