插值 `$()` 不适用于 Ubuntu 22.04 中的 Docker 命令

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

根据本文,要删除所有图像,请使用命令

sudo docker rmi $(docker images -a -q)

必须执行。 AFAIK 它在 Windows 中不起作用,但我主要需要 CLI 用于 VPS。目前,我的 VPS 中有 Ubuntu 22.04。如果执行上面的命令,会报错

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head "http://%2Fvar%2Frun%2Fdocker.sock/_ping": dial unix /var/run/docker.sock: connect: permission denied
"docker rmi" requires at least 1 argument.
See 'docker rmi --help'.

Usage:  docker rmi [OPTIONS] IMAGE [IMAGE...]

Remove one or more images

将会发生。删除所有容器时出现类似错误:

sudo docker rm $(docker ps -a -f status=exited -q)

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.44/containers/json?all=1&filters=%7B%22status%22%3A%7B%22exited%22%3Atrue%7D%7D": dial unix /var/run/docker.sock: connect: permission denied
"docker rm" requires at least 1 argument.
See 'docker rm --help'.

Usage:  docker rm [OPTIONS] CONTAINER [CONTAINER...]

Remove one or more containers

Docker 版本:

Client: Docker Engine - Community

 Version:           25.0.4
 API version:       1.44
 Go version:        go1.21.8
 Git commit:        1a576c5
 Built:             Wed Mar  6 16:32:12 2024
 OS/Arch:           linux/amd64
 Context:           default
linux docker docker-compose ubuntu-20.04
1个回答
0
投票

您需要在嵌套的

sudo
命令前面添加
docker

而不是

sudo docker rmi $(docker images -a -q)

你需要

sudo docker rmi $(sudo docker images -a -q)

如果您经常使用 Docker,请考虑将自己添加到

docker
组。然后运行
docker
命令就可以了,不用每次都在前面加上
sudo
。更多信息在这里:https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user

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