我在我有 Ubuntu 操作系统的机器上安装了 Docker。 当我运行时:
sudo docker run hello-world
一切都很好,但我想隐藏sudo命令以使命令更短。 如果我不写命令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
运行以下命令或注销并再次登录并运行(这不起作用,您可能需要先重新启动计算机)
$ newgrp docker
检查docker是否可以在没有root的情况下运行
$ docker run hello-world
如果仍然出现错误,请重新启动
$ reboot
警告
docker 组授予与 root 用户等效的权限。有关这如何影响系统安全性的详细信息,请参阅Docker 守护程序攻击面。.
取自 docker 官方文档: manage-docker-as-a-non-root- user