Docker 常见问题
Docker 常见问题与解决方式
提示缺少权限 permission denied
问题及分析
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.46/version": dial unix /var/run/docker.sock: connect: permission denied
原因是 docker 进程使用的是 Unix Socket,而不是 TCP 端口 默认情况下 Unix Socket 属于 root 用户,需要提权
解决方法
新建 docker用户组 ,并将当前用户添加到 docker用户组 中。
bash
# 新建docker用户组
sudo groupadd docker
# 将当前用户添加到docker用户组
sudo gpasswd -a $USER docker
# 更新docker用户组
sudo newgrp docker1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
Uncomplicated Firewall (UFW) 防火墙失效问题
问题及分析
如果系统中使用了 Uncomplicated Firewall (UFW) 防火墙。
Docker 和 UFW 的组合可能回带来一些安全问题。
因为 UFW 是 iptables 的一个上层封装,底层功能依旧还是 iptables 实现。
而 Docker 实际上绕过了 UFW 并直接修改了 iptables,所以一个容器可以绑定一个端口。
这就意味着,所有你设置的 UFW 规则都将在 Docker 容器中失效。
解决方法
禁止 Docker 直接操作 iptables
/etc/default/docker
bash
DOCKER_OPTS="--iptables=false"1