当前设置
我根据本文在 Ubuntu(20.04)上安装了 Docker(19.03.11):https://docs.docker.com/engine/install/ubuntu/
目标是什么
我想更改 data-root 和 tls 选项,因此我搜索配置可能性。
我使用了哪些选项
- /lib/systemd/system/docker.service
- /etc/docker/daemon.json(默认情况下不退出!)
- /etc/init/docker.conf
- /etc/default/docker
- /etc/init.d/docker
我遵循的程序
我尝试了所有这些文件,并按照以下步骤操作:
service docker stop
[编辑文件]
systemctl daemon-reload
service docker start
什么方法有效
我只能通过编辑 docker.service 文件来应用 data-root 选项(但是)当我安装 docker-compose 时它被重置了,所以我猜解决方案不在那里。
问题:
- 我错过了什么导致上述解决方案不起作用?
- 还有其他选项可以将参数传递给 dockerd 可执行文件吗?(除了我手动启动它或在 init.d 文件夹中创建我自己的脚本)
答案1
据我所知,只有编辑文件时才能获得所需的更改/lib/systemd/system/docker.service
?对吗?但之后它会被覆盖?
您需要创建一个systemd 插件文件。说明可在此处找到:https://unix.stackexchange.com/a/468067/105418。
systemctl edit docker.service
这将创建一个自定义文件,/etc/systemd/system
其中包含覆盖,即您希望 docker 使用的特定设置。因此,/lib/systemd/system/docker.service
其他人(例如 docker-compose)可以更新 中的文件,而无需删除您的设置。
PS-Ubuntu 20.04 默认使用systemd你应该使用系统控制启动和停止docker.service的命令。
答案2
尝试创建/etc/docker/daemon.json
以下内容
{
"storage-driver": "overlay2",
"data-root": "/home/docker"
}
dockerd
将自动从该文件中获取配置。您不必修改 systemd 单元配置文件。下面是dockerd 选项的完整参考。