本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《
阿里云开发者社区用户服务协议
》和
《
阿里云开发者社区知识产权保护指引
》。如果您发现本社区中有涉嫌抄袭的内容,填写
侵权投诉表单
进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
”Got permission denied while trying to connect to the Docker daemon
socket at unix:///var/run/docker.sock: Get
http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json: dial unix
/var/run/docker.sock: connect: permission denied“
问题描述:
”Got permission denied while trying to connect to the Docker daemon
socket at unix:///var/run/docker.sock: Get
http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json:
dial unix
/var/run/docker.sock: connect: permission denied“
原因(摘自docker手册):
Manage Docker as a non-root user
The docker daemon binds to a Unix socket instead of a TCP port. By
default that Unix socket is owned by the user root and other users can
only access it using sudo. The docker daemon always runs as the root
user.
If you don’t want to use sudo when you use the docker command, create
a Unix group called docker and add users to it. When the docker daemon
starts, it makes the ownership of the Unix socket read/writable by the
docker group.
答案显而易见,要不用root用户,要不创建一个名为docker的用户组,并把你需要使用docker的非root用户添加到该组中,如果还不会搞,继续往下看。
方法1:
使用sudo获取管理员权限,运行docker命令,这个方法在通过脚本执行docker命令的时候会有很多局限性
方法2:
docker守护进程启动的时候,会默认赋予名为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令
sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
阿里云双11拼团1折
将数据库运行在 Docker 中有以下好处:
1. 方便在不同的环境中部署和移植:Docker 可以将数据库和其依赖的环境(如操作系统、配置文件等)打包成一个镜像。这使得在不同的环境中部署和移植数据库变得非常方便。例如,在开发、测试和生产环境中,我们可以使用完全相同的镜像构建数据库。
2. 更容易管理和升级:Docker 容器是轻量级的,启动和停止非常快速。这意味着我们可以更容易地管理多个数据库实例,并且在需要更新或升级时也能够快速、可重复地进行操作。
3. 更安全的沙盒环境:Docker 容器提供了一个沙盒环境,使得运行应用程序的操作系统与主机操作系统相隔离。这可以有效降低不同应用程序
liuyunshengsir
Arthas中session、tee、version、wc基础命令应用
手动部署MySQL数据库(CentOS 7)
部署并使用Docker(Alibaba Cloud Linux 3)
部署并使用Docker(CentOS 8)