如何在托管的 Ubuntu 代理上的 Azure Pipelines 中启用实验 Docker 守护程序

dev*_*ead 6 docker azure-devops azure-pipelines

我希望能够--squash在构建 docker 图像时使用该开关,因为这会减少几 MB 的结果图像。

这需要为 docker 启用实验性功能。

执行一个docker --version确认(应该)在托管的 Azure Pipelines 代理上关闭实验性功能。

Server:
 Engine:
  Version:  18.03.1-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.5
  Git commit:   9ee9f40
  Built:    Thu Apr 26 07:15:30 2018
  OS/Arch:  linux/amd64
  Experimental: false
Run Code Online (Sandbox Code Playgroud)

Linux 代理正在运行

Kernel Version: 4.15.0-1022-azure
Operating System: Ubuntu 16.04.4 LTS
OSType: linux
Architecture: x86_64
Run Code Online (Sandbox Code Playgroud)

我试过改变/etc/systemd/system/docker.service.d/docker.conf/etc/docker/daemon.json开始/包含实验标志,但没有成功启用它。

docker.conf

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --experimental=tr
Run Code Online (Sandbox Code Playgroud)

或者

daemon.json

{ 
    "experimental": true 
} 
Run Code Online (Sandbox Code Playgroud)

但是不要不确定我是否可以在托管代理上重新启动守护程序。

目前正在做 yaml 构建从 bash 调用 docker,但在 web 界面中也没有看到任何关于实验的东西。

如果我启动自己的 Ubuntu VM 并在其上托管代理,则实验性工作,但希望通过使用托管代理来避免成本和维护。

ssc*_*oof 8

在 Ubuntu 映像中,您可以在daemon.json更新后简单地重新启动 docker 服务。我使用包含两行的脚本:

echo '{ "experimental": true }' | sudo tee /etc/docker/daemon.json
sudo service docker restart
Run Code Online (Sandbox Code Playgroud)