在没有使用sudo的情况下运行时,Docker插件不被识别为命令。

4

我正在运行

  • Ubuntu 20.04.5 LTS
  • Docker版本23.0.1,构建a5ee5b1

执行命令

docker build -t some:other Dockerfile

生成以下输出:

unknown shorthand flag: 't' in -t

而且

docker build

以下内容:

docker: 'buildx' is not a docker command.

我按照建议从repo安装了Docker: instructions

其他插件也无法工作(docker compose也无法识别)。即使如此,docker info仍然显示。

  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.10.2
    Path:     /home/jpartanen/.docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.16.0
    Path:     /home/jpartanen/.docker/cli-plugins/docker-compose
  scan: Docker Scan (Docker Inc.)

Docker在linux-postinstall中解释的docker用户组的帮助下可以无需sudo运行。我也想无需sudo运行插件。

我已经重新安装了Docker并重新启动了机器,但没有任何改变。可能是什么问题呢?

1个回答

1

通过创建链接使插件可在Docker上运行:

ln -s /usr/libexec/docker/cli-plugins/ ~/.docker/cli-plugins

由于命令不被Docker识别,这会让人感到非常困惑,因为命令不匹配,buildbuildx。这是因为Docker Engine 23.0将Buildx和BuildKit设置为Linux上的默认构建器。docker build被别名为docker buildx build

至于在没有sudo的情况下运行,问题可能是由于插件安装在错误的位置所致。在我的机器上,运行以下命令:

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

将插件安装在/usr/libexec/docker/cli-plugins/中,而按照这里所述,插件可从$HOME/.docker/cli-plugins(无需sudo)使用。

一个相对稳健的解决方案是按照上述方式创建链接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接