我有以下问题:
如何在Ubuntu 16.04上运行Docker实验性功能(例如使用镜像压缩docker build --squash=true...
以减小其大小)?
我有以下问题:
如何在Ubuntu 16.04上运行Docker实验性功能(例如使用镜像压缩docker build --squash=true...
以减小其大小)?
要启用实验性的Docker功能,请按以下方式创建文件:
sudo nano /etc/docker/daemon.json
并将下面的内容添加到其中
{
"experimental": true
}
保存文件(使用CTRL + X和Enter),然后退出。在终端中输入:
sudo service docker restart
要检查实验功能是否已开启,请在终端中键入:
docker version
您应该看到 Experimental: true
您可以使用此一行命令代替 nano:
echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
我在我的 Mac 上的 Ubuntu 18.04 虚拟机上尝试了这里的所有方法,但都没有成功。整个互联网上都说同样的话,但最终让实验性功能开启的是 @Michael Haren 的简短回答:
提醒一下 - 要为客户端启用此功能,则要创建的配置文件是
~/.docker/config.json
,且值为"enabled"
,而不是true
对于我来说,这意味着:
$ mkdir ~/.docker
$ echo '{ "experimental": "enabled" }' > ~/.docker/config.json
$ sudo systemctl restart docker
$ docker version
...
Experimental: true
...
这应该是一个顶级答案。所以,归功于他们(除了我得不到甜美的互联网声望积分...)。
export DOCKER_CLI_EXPERIMENTAL=enabled
。下面的命令将为您的客户端打开实验模式。
```
如果您只想暂时运行它/而不修改文件,则可以导出DOCKER_CLI_EXPERIMENTAL=enabled。以下代码将为您的客户端打开实验模式。
```$ docker version
Experimental: false
$ export DOCKER_CLI_EXPERIMENTAL=enabled
$ docker version
Experimental: true
我认为你可以像https://dev59.com/j1cP5IYBdhLWcg3weJ1R#70460819上的SO描述的那样,在Linux上使用systemctl
来解决这个问题。但是,首先你需要编辑正确的文件...如果你正在寻找类似的答案,以下是在MacOS中设置它的方法。
ENABLED=true
或ENABLED=false
,此脚本将自动打开或关闭它,并写入文件注意:你必须安装
jq
才能执行和原地更新。
ENABLED=true; \
CONFIG=~/.docker/config.json; DAEMON=~/.docker/daemon.json ; \
cat <<< $(jq --argjson V ${ENABLED} '.experimental = $V' ${DAEMON}) > ${DAEMON} ; \
cat <<< $(jq --arg V $(if [ "${ENABLED}" = "true" ]; then echo "enabled"; else echo "disabled"; fi) '.experimental = $V' ${CONFIG}) > ${CONFIG} ; \
cat ~/.docker/config.json ; \
cat ~/.docker/daemon.json
{
"auths": {
"https://index.docker.io/v1/": {},
"registry.gitlab.com": {}
},
"credsStore": "desktop",
"experimental": "enabled",
"currentContext": "default"
}
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": true,
"features": {
"buildkit": true
}
}
killall Docker && open /Applications/Docker.app
我发布这篇文章是为了帮助那些在 macOS 上运行 Docker 的人。
你需要在两个文件上启用实验性功能,一个是客户端,另一个是 Docker 引擎。
我建议手动打开文件,而不是直接将内容输出到文件中,因为该文件可能包含其他配置,你可能不想意外覆盖它们。
对于客户端,请访问 ~/.docker/config.json
,并在顶级配置下方添加 "experimental": "enabled"
。
{
"experimental" : "enabled",
"auths" : {
"harbor.xxx.com" : {
}
},
"credsStore" : "desktop"
}
对于Docker Engine,请访问~/.docker/daemon.json
并在顶层配置中添加以下内容:"experimental": true
{
"features": {
"buildkit": true
},
"experimental": true,
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
}
}
experimental
的“value”是不同的。killall Docker && open /Applications/Docker.app
docker version
sudo sed -i 's/ExecStart=\/usr\/bin\/dockerd -H fd:\/\/ --containerd=\/run\/containerd\/containerd.sock/ExecStart=\/usr\/bin\/dockerd -H fd:\/\/ --containerd=\/run\/containerd\/containerd.sock --experimental/g' /lib/systemd/system/docker.service
sudo systemctl daemon-reload
sudo systemctl restart docker
~/.docker/config.json
,值为"enabled"
,而不是true
。请注意,本文不提供解释。 - Michael Harensudo service docker restart
将关闭任何正在运行的 Docker 容器,请小心。 - alan.elkin