如何“无根”卸载 Docker,而不删除用户?

如何“无根”卸载 Docker,而不删除用户?

如今,Docker 至少可以通过两种方式安装,Docker 安装程序在启动时提供了一种选择:

  1. 传统模式(docker从 root 执行,或使用sudo docker
  2. 无根模式(从非 root 和非 sudoer 执行 docker)

有些人错误地在当前用户中“无根”安装 Docker(例如: id:gid 1000:1000),认为“这是从普通用户使用 运行 Docker 的选项sudo docker,然后他们发现自己选择了错误的选择,并且他们想要回滚到传统版本(奖励点:无需删除该用户)他们发现它不再与他们的工作流程兼容,例如因为绑定安装始终在root:root容器内部安装(请参阅具有非主要组访问权限的无根 docker 中的权限被拒绝)。

有关如何删除传统 Docker 的文档,但似乎不足以在保留用户的同时从现有用户卸载无根版本(请参阅https://github.com/docker/docker-install/issues/166)。

问题:

如何从用户中卸载“Docker rootless”并保留该用户?例如,在 Ubuntu 或基于 Debian 的系统中?

目的:切换到常规Docker,保留用户。谢谢!


我尝试了上述问题的各种意见,例如通过更改“Docker context”,但由于某种原因这对我来说还不够。或者无论如何,我无法弄清楚实现目标的最小顺序是什么。我从这个问题中遵循了太多的提示。最好能够了解最少的步骤,至少在基于 Ubuntu 或 Debian 的系统中是这样。

额外说明:

答案1

我今天也遇到了这个问题,非常令人沮丧,所有建议都不起作用,但我确实解决了它。首先,GitHub问题中的评论说“rootless不使用系统包”是不正确的,docker是通过apt为我安装的。我不明白为什么会出现这个问题,也不明白为什么我需要采取措施来解决这个问题,但它很简单:

  • 删除泊坞窗:sudo apt remove docker* containerd*
  • 重新开始!删除 docker 后,我仍然dockerd-rootless在后台运行,直到重新启动。
  • 从 apt 软件包重新安装 docker(我使用了https://get.docker.com脚本)
  • 添加DOCKER_HOST=unix:///var/run/docker.sock.bashrc

就像我说的,不知道为什么DOCKER_HOST需要设置在这里。当我的环境默认为无根时,它并不存在于我的环境中,并且我的其他从一开始就已扎根 Docker 的服务器都没有它。但它现在有效了,所以我希望这会有所帮助!

相关内容