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

出品丨Docker公司(ID:docker-cn)

编译丨小东

每周一、三、五晚6点10分  与您不见不散!


说在前面


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


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


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

&


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


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


  • 更新 runc 以解决一个关键的漏洞,该漏洞允许特制容器获得主机管理权限;【CVE-2019-5736】


  • 使用 3.13 版本内核的 Ubuntu 14.04 用户需要升级到受支持的 Ubuntu 4.x 版本的内核;

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


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 新版本特性解读,全新功能先睹为快(一)


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 来管理。


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


让我们尝试在最新的 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 Engine v18.09.1 新版本特性解读,全新功能先睹为快(一)


验证 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


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


验证 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 服务。

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


点击下列标题,阅读更多干货



如果本文对你有帮助,欢迎分享到朋友圈!获取更多Docker实用技巧,扫描下图二维码!

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

相关文章:

  • 2022-12-23
  • 2021-07-07
  • 2021-04-06
  • 2021-09-17
  • 2022-01-07
  • 2022-01-02
  • 2021-10-18
猜你喜欢
  • 2021-08-26
  • 2021-04-11
  • 2021-10-01
  • 2021-06-19
  • 2021-05-18
  • 2021-08-01
  • 2021-08-15
相关资源
相似解决方案