[Ubuntu]在不使用sudo命令的情况下运行docker的设置和注意事项
关于在Ubuntu上使用docker时如何在不使用sudo的情况下启用docker的说明。
触发
安装docker之后sudo
当我在没有命令的情况下检查操作时,发生了错误。
#从Ubuntu终端docker运行hello-world
docker:尝试连接到Unix上的Docker守护程序套接字时,权限被拒绝:///var/run/docker.sock:发布http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/create:拨打unix /var/run/docker.sock:connect:权限被拒绝,请参阅“ docker run –help”。
似乎对docker守护程序的访问已被拒绝。 我输入了sudo docker run hello-world并且它起作用了。
错误的原因似乎是由于以下原因。
Docker通过unix套接字或tcp / ip与以root特权运行的守护进程(dockerd)通信,但是您需要属于docker组或具有root特权才能访问dockerd。
了解使用Docker将用户添加到Docker组的危险
通过添加sudo命令,一般用户可以执行没有root特权(例如,连接到守护程序)就无法执行的命令。但是每次添加sudo都是乏味的。
对策与注意事项
不使用sudo运行的一种方法是使用户属于dokcer组(通常是googled组),但似乎也存在安全问题。
参考:在Docker组中授予类似root的特权时的风险(官方文档)
如果您想使用不带sudo的docker, newgrp
据说最好暂时属于一个组或用户名称空间。
sudo groupadd docker#$使用用户名的用户sudo usermod -aG docker $ USER newgrp docker docker运行hello-world
您好,Docker!
此消息表明您的安装似乎正常工作。
为了生成此消息,Docker采取了以下步骤:
1. Docker客户端联系了Docker守护进程。
2. Docker守护程序从Docker Hub中提取了“ hello-world”映像。
(amd64)
3. Docker守护程序从该映像创建了一个新容器,该容器运行
可执行文件,产生您当前正在读取的输出。
4. Docker守护程序将该输出流式传输到Docker客户端,该客户端将其发送给它
到您的终端。
要尝试更具野心的东西,可以使用以下命令运行Ubuntu容器:
$ docker run -it ubuntu bash
使用免费的Docker ID共享图像,自动化工作流程以及更多功能:https://hub.docker.com/
有关更多示例和想法,请访问:
https://docs.docker.com/get-started/
讨论
评论清单
暂无任何评论