我在Ubuntu机器上安装了Docker。当我运行
sudo docker run hello-world
一切正常,但我想去掉sudo
命令以使命令更短。如果我直接写不带sudo
的命令:
docker run hello-world
它会显示以下错误信息:
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied. See 'docker run --help'.
同样的问题也出现在我尝试运行:
docker-compose up
我该如何解决这个问题?
如果你想以非root用户身份运行Docker,那么你需要将你的用户添加到docker组。
-
如果docker组不存在,则创建该组:
$ sudo groupadd docker
-
将你的用户添加到docker组:
$ sudo usermod -aG docker $USER
-
登录到新的docker组(为了避免需要注销并重新登录;如果不够,尝试重启):
$ newgrp docker
-
检查是否可以在没有root权限的情况下运行Docker:
$ docker run hello-world
如果仍然出现错误,请重启系统:
$ reboot