背景
利用 ubuntu 24 建立一个 ubuntu16 的系统环境,用16 来进行开发板的开发。
问题
在 docker 中搭建 NFS服务,在编辑 /etc/exports 文件后,重启 nfs 服务时不通过,原因是 docker 中的文件路径都进行了 encryption。 即使我的 yaml 文件中使用了 privileged = true. 为此,需要在 docker compose up -d 时,使用 sudo 权限运行。
在使用 sudo 运行 docker 命令时,遇到
1
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
/var/run/docker.sock 是docker context 的默认配置。但是我的电脑上没有这个文件。
在进一步搜索中发现,好像涉及到了 docker 的security 权限部分, security讨论网站
根据docker官方介绍,当前我的电脑只有在lucky 用户权限下通过docker-desktop 有权限获取 /var/run/docker.sock (不清楚是不是因为安装的时候使用的lucky用户)
排查过程
可以看出, docker 用户组下只有 x:997, 本身的lucky 用户不属于其中
dockerForLinux linux不需要GUI,only need docker(now named docker engine) 根据这篇记录,查看自己的 context ,可以看出 lucky 才具备通信资格,root 没有。
- 已经将lucky加入到 docker 组中了,需要重启运行 docker run hello-world 验证
结论
- docker 有很多product,如果是linux 系统,只需要关注一个叫做 docker-engine 的即可。参考安装教程安装
- docker compose 限制了很多权限,是只安装到当前用户的,用systemctl –user start docker-desktop 才能启动,且用户间隔离。(猜测)
- linux 下CLI 才是王道。
- 补充增加用户的方法
good question NFS mounts as the docker “data-root” is not supported. This limitation is not specific to rootless mode.
linux
``` netstat -tulpn