You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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''.

现在我就想实现两个目标:

  1. 普通用户不用加sudo就能正常执行Docker命令(比如docker ps、docker run这些)
  2. root用户构建镜像的时候不会出现读取文件的权限问题

有没有针对Snap安装的Docker的特殊配置方法呀?麻烦各位大佬指点一下!

备注:内容来源于stack exchange,提问作者Fiyaz Hasan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 15:57:42