套接字 – Pycharm Docker Unix / TCP套接字(使用unix:///var/
尝试在PyCharm Professional版本中设置Docker时出现Permission Denied错误.我在Debian Jessie(BunsenLabs).
它既有默认设置(使用Unix套接字),也有TCP套接字,Engine API URL = unix:///var/run/docker.sock(它有意义吗?). 如果我们查看套接字上的权限:
我们看到它由root和docker组拥有. 所以我尝试将我的用户添加到docker组(使用sudo usermod -a -G docker USERNAME),然后重新启动Docker服务(使用sudo service docker restart),但它仍然无效. 允许PyCharm使用套接字的一种方法是使用root权限运行它,即sudo pycharm,但我想避免这种情况.我还能够通过为套接字上的其他人设置读写权限来解决这个问题(sudo chmod o rw /var/run/docker.sock),但现在每个人都可以在没有管理员权限的情况下在该机器上使用Docker. 允许PyCharm连接到Docker套接字最安全的方法是什么? 此外,请注意Docker在命令行上运行正常.在快速和脏修复(chmod o rw)之前,我不得不使用sudo docker,并更新了/ etc / sudoers以不输入此命令的密码.现在它即使没有sudo也可以工作.它感觉不安全,但它是一台开发机器,所以如果没有其他解决方案,我会保持这样. 编辑:我正在添加其他重要信息. 首先,在Docker组中添加我的用户确实是要走的路.问题是,当使用sudo usermod时,不会立即反映您正在使用的用户帐户的更改.您需要注销并再次登录才能刷新系统.本文中的更多信息和答案:Add user to group but not reflected when run “id”. 其次,在Docker组中添加自己允许权限提升!任何能够在没有sudo的情况下运行docker(因此无需输入密码)的用户也可以运行容器,其中系统的根安装在卷中:docker run -v /:/ host_root -it –rm ubuntu /斌/庆典.由于您是容器中的root用户,这意味着您可以像操作主机上的root一样操作主机系统.在Docker组中添加用户之前,请考虑这一点. 最佳答案
我假设,您的用户名已经在docker组中.要检查这一点,请发出以下命令.
如果没有,则需要通过下面的命令将用户添加到docker组中.
当您执行命令sudo systemctl start docker时,它会创建一个docker进程.该docker进程包含dockerd守护程序线程.该命令还会创建默认的docker.sock Unix套接字. dockerd守护程序线程持续监听docker.sock套接字.这使您可以使用docker.pid进程执行内核级IPC.为了能够使用此docker套接字,您需要具有进程级别(docker.pid)和文件级别(docker.sock)的适当权限.因此,执行以下两个命令可以解决您的问题.
如您所见,它在PyCharm中没有显示任何错误. 注意:运行sudo dockerd -H unix:///var/run/docker.sock也会执行与上述相同的操作. 此外,您可以创建TCP套接字,以便可以将此TCP套接字用于您自己的主机以及任何远程主机. docker stop:sudo systemctl stop docker dockerd -H tcp://127.0.0.1:2375 -H //你应该在执行这个命令之前停止docker 启动docker:sudo systemctl启动docker 并且,请参阅下面PyCharm中成功的TCP docker socket连接. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |