Ubuntu 22.04 EC2实例通过Snap安装Docker后无法正常使用的解决请求
Ubuntu 22.04 EC2实例通过Snap安装Docker后无法正常使用的解决请求
各位大佬好,我之前一直用sudo apt-get install docker的方式在Ubuntu上安装Docker,用起来都很顺畅。今天想试试用Snap来安装Docker,结果遇到了一堆权限问题,折腾了半天也没搞定,想请教下有没有解决办法?
下面是我完整的操作过程和遇到的错误:
# 首先通过SSH连接到我的Ubuntu 22.04 EC2实例 C:\Users\Administrator\Downloads>ssh -i "vy.pem" ubuntu@ec2-18-142-158-158.ap-southeast-1.compute.amazonaws.com # 登录成功后,先尝试查看容器列表,直接报错权限不足 ubuntu@ip-172-31-32-168:~$ docker ps -a 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.24/containers/json?all=1": dial unix /var/run/docker.sock: connect: permission denied # 按照常规思路,把当前用户加入docker用户组 ubuntu@ip-172-31-32-168:~$ sudo usermod -aG docker $USER ubuntu@ip-172-31-32-168:~$ newgrp docker # 再试运行hello-world镜像,还是同样的权限拒绝错误 ubuntu@ip-172-31-32-168:~$ 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.24/containers/create": dial unix /var/run/docker.sock: connect: permission denied. See 'docker run --help'. # 尝试修改~/.docker目录的权限,结果发现这个目录根本不存在 ubuntu@ip-172-31-32-168:~$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R chmod g+rwx "$HOME/.docker" -Rsudo chmod g+rwx "$HOME/.docker" -Rchown: cannot access '/home/ubuntu/.docker': No such file or directory # 试着创建docker组,提示已经存在了 ubuntu@ip-172-31-32-168:~$ sudo groupadd docker groupadd: group 'docker' already exists # 再次执行添加用户到组的命令,然后尝试切换用户,中途因为输密码麻烦中断了 ubuntu@ip-172-31-32-168:~$ sudo usermod -aG docker ${USER} ubuntu@ip-172-31-32-168:~$ su -s ${USER} Password: ^C # 索性退出SSH重新登录,结果问题还是没解决 ubuntu@ip-172-31-32-168:~$ exit exit Connection to ec2-18-142-158-158.ap-southeast-1.compute.amazonaws.com closed. C:\Users\Administrator\Downloads>ssh -i "vy.pem" ubuntu@ec2-18-142-158-158.ap-southeast-1.compute.amazonaws.com ubuntu@ip-172-31-32-168:~$ docker ps -a 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.24/containers/json?all=1": dial unix /var/run/docker.sock: connect: permission denied # 忘记加sudo执行usermod,自然报错权限不足 ubuntu@ip-172-31-32-168:~$ usermod -aG docker ${USER} usermod: Permission denied. usermod: cannot lock /etc/passwd; try again later. # 想重启Docker服务,结果提示服务不存在? ubuntu@ip-172-31-32-168:~$ sudo service docker restart Failed to restart docker.service: Unit docker.service not found. # 切换到root用户试试构建镜像,结果又出现读取.bash_history的权限问题 ubuntu@ip-172-31-32-168:~$ su root Password: root@ip-172-31-32-168:/home/ubuntu# docker build . -t kong-your-tag error checking context: 'no permission to read from '/home/ubuntu/.bash_history''.
现在我就想实现两个目标:
- 普通用户不用加sudo就能正常执行Docker命令(比如
docker ps、docker run这些) - root用户构建镜像的时候不会出现读取文件的权限问题
有没有针对Snap安装的Docker的特殊配置方法呀?麻烦各位大佬指点一下!
备注:内容来源于stack exchange,提问作者Fiyaz Hasan
相关产品推荐
相关产品推荐

