环境描述vmware15虚拟机安装centos7.464位系统,docker版本19.03.2问题描述安装好docker后,执行docker相关命令dockerrunubuntu:15.10/bin/echo"Helloworld"显示如下提示:docker:GotpermissiondeniedwhiletryingtoconnecttotheDockerdaemonsocketatunix:///var/run/docker.sock:Posthttp://%2Fvar%2Frun%2Fdocker....:拨打unix/var/run/docker.sock:connect:permissiondenied.原因取自docker手册ManageDockerasanon-rootuser上的一段ThedockerdaemonbindstoaUnixsocketinsteadofaTCPport。默认情况下,Unix套接字由用户root拥有,其他用户只能使用sudo访问它。docker守护进程始终以root用户身份运行。如果你不想在使用docker命令时使用sudo,创建一个名为docker的Unix组,并向其中添加用户。当docker守护进程启动时,它使Unix套接字的所有权由docker组读取/写入。大概意思是:docker进程使用的是UnixSocket,而不是TCP端口。默认情况下,Unix套接字属于root用户,需要root权限才能访问。解决方案1??使用sudo获取管理员权限,运行docker命令#可以正常执行以下命令sudodockerrunubuntu:15.10/bin/echo"Helloworld"解决方案2dockerdaemon启动时会默认一个用户名为docker组有读写Unixsocket的权限,所以只要创建docker用户组,将当前用户加入docker用户组,那么当前用户就有访问Unixsocket的权限,然后就可以了执行docker相关命令sudogroupadddocker#添加docker用户组sudogpasswd-a$USERdocker#将登录用户加入docker用户组newgrpdocker#更新用户组dockerps#测试docker命令是否可以正常使用sudo本文转自:https://www.fengjunzi.com/blog-25467.html欢迎访问我的网站:风君子博客,微信公众号fj3702交流
