如何完全删除一个snap应用程序(docker)

问题描述 投票:0回答:6

我犯了通过 Snap 安装 Docker 的错误……当我意识到 Snap 没有权限在我的工作目录(在不同的分区上)运行时,我将其删除。现在我通过 apt-get 安装 docker 后无法使用它。

请帮忙。

我已经完成了

sudo snap remove docker
,但是当我
sudo apt install docker
并通过
docker
运行时,我得到了
bash: /snap/bin/docker: No such file or directory

docker ubuntu apt haskell-snap-framework
6个回答
21
投票

我也有同样的问题。这对我有用。

sudo snap remove docker
sudo reboot 

重点是重新启动实例或终端。

希望这个方法可以帮到你


11
投票

您正在寻找的命令是:

sudo apt install docker.io

即它是

docker.io
而不仅仅是
docker

在 Ubuntu 上,软件包

docker
被描述为“KDE3/GNOME2 应用程序的系统托盘”,这可能不是您想要的!


5
投票

我做了同样的事情,只需重新启动实例即可修复它。


5
投票

我也有同样的问题。 snap 安装限制权限,请参阅 https://snapcraft.io/install/docker/ubuntu 第一个要点 - 可能是出于良好的安全原因,因为 docker 可以提供无限的 root 权限...)。

首先,

sudo snap remove docker --purge
摆脱它。 (摘自@jorgeca 的评论)。

其次,按照官方安装指南

### remove any previously installed docker remnants
sudo apt-get remove docker docker-engine docker.io containerd runc

### install ca-certificates
sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg

### install docker certs
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

### setup docker repo
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

### install docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

### test installation
sudo docker run hello-world

我还执行了以下操作 - 测试安装绑定不在 $HOME 中的卷。快速安装 docker 时会出错,提示文件系统是只读的。

sudo mkdir /test
sudo docker run -v /test:/test hello-world
sudo rmdir /test

3
投票

问题很简单,您的

bash
shell 会缓存已知可执行文件的位置,以避免每次键入命令时都必须扫描可执行文件搜索路径(即
$PATH
中列出的目录)。由于您已从一个目录 (
/snap/bin
) 中删除可执行文件并将其添加到另一目录 (
/usr/bin
),因此此缓存现已过时。这意味着,如果您尝试仅通过键入
docker
而不是其完整路径来调用可执行文件,它将查找错误的位置。

只需启动一个新的

bash
shell 即可修复它,例如打开一个新的终端窗口并在其中键入命令。

或者,如果您希望刷新已使用的终端会话中的缓存,请键入:

hash -r

无需重新启动计算机(尽管这也可以)。


0
投票

只需使用

sudo snap remove docker

@Dave,小心使用

sudo apt install [dependency]
;这样做会将依赖项标记为手动安装,这是您不希望看到的。

我没有足够的声誉来发表评论(抱歉!)。

© www.soinside.com 2019 - 2024. All rights reserved.