You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

同一机器上同时运行Rootless与Rootful Docker实例可行吗?

同一服务器同时运行Rootful与Rootless Docker的可行性

可以在同一服务器上让Rootful和Rootless Docker独立运行,官方文档的卸载/禁用建议主要是为了降低初学者的配置复杂度,实际通过配置隔离即可实现二者共存。

核心配置要点

  • 端口与Socket隔离
    Rootful Docker默认监听/var/run/docker.sock(Unix套接字)或2375/2376端口,Rootless Docker需使用独立的套接字和端口:

    • 编辑低权限用户的~/.config/docker/daemon.json,指定独立的监听地址,例如:
      {
        "hosts": ["unix:///run/user/1000/docker.sock", "tcp://127.0.0.1:2377"]
      }
      
      (将1000替换为实际用户UID,2377替换为未被占用的端口)
  • 环境变量区分
    低权限用户使用Rootless Docker时,需设置环境变量指向自己的套接字,避免调用Rootful的Daemon:

    export DOCKER_HOST=unix:///run/user/1000/docker.sock
    

    可将此命令加入用户的~/.bashrc或~/.zshrc实现永久生效。

  • 存储与资源隔离

    • Rootless Docker的镜像、容器数据默认存储在用户目录~/.local/share/docker,与Rootful的/var/lib/docker完全独立,不会互相干扰。
    • Rootless Docker受用户级资源限制(如ulimits、cgroup),可通过修改用户的/etc/security/limits.conf或配置用户级systemd服务调整,不影响Rootful Docker的资源使用。

注意事项

  • 严格禁止低权限用户获取Rootful Docker套接字(/var/run/docker.sock)的访问权限,否则会导致用户权限提升至root,违背Rootless模式的安全初衷。
  • Rootless模式本身不支持部分特权操作(如--privileged参数、挂载host的特权路径),此类场景仍需使用Rootful Docker,这是Rootless的固有限制,与二者共存无关。
  • 启动方式区分:Rootful Docker使用系统级systemd服务(docker.service),Rootless Docker需配置用户级systemd服务(通过dockerd-rootless-setuptool.sh install完成配置后启动)。

内容的提问来源于stack exchange,提问作者user23464825

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 16:25:05