解决运行 docker 命令需要 sudo 的问题
大约 1 分钟...
解决运行 docker 命令要用 sudo 的问题
Q:首先说一下问题是怎么出现的?
A:Docker 的守护线程绑定的是 unix socket,而不是 TCP 端口,这个套接字默认属于 root,其他用户可以通过 sudo 去访问这个套接字文件。所以 docker 服务进程都是以 root 账户运行。
解决的方式是创建 docker 用户组,把应用用户加入到 docker 用户组里面。只要 docker 组里的用户都可以直接执行 docker 命令。
可以先通过指令查看是否有用户组:
cat /etc/group | grep docker
如果有就跳过第一步!
第一步:创建 docker 用户组
sudo groupadd docker
第二步:用户加入到用户组
sudo usermod -aG docker 用户名
第三步:检查是否有效
cat /etc/group
第四步:重启 docker-daemon
sudo systemctl restart docker
第五步:给 docker.sock 添加权限
sudo chmod a+rw /var/run/docker.sock