ubuntu Docker插件在不使用sudo的情况下运行时不会被识别为命令

rhfm7lfc  于 2023-02-11  发布在  Docker
关注(0)|答案(1)|浏览(124)

我在跑

  • Ubuntu 20.04.5语言版本
  • 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.

我按照回购协议中的建议安装了Docker:instructions
其他插件也不工作(docker compose也无法识别)。

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在docker用户组的帮助下运行而不使用sudo,如linux-postinstall中所述,我也想运行不使用sudo的插件。
我已经重新安装了Docker并重新启动了机器,没有任何变化。可能是什么问题?

lhcgjxsq

lhcgjxsq1#

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

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

由于命令buildbuildx不匹配,Docker无法识别的命令会格外令人困惑。这是因为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/中安装插件,而按照here的布局,可以从$HOME/.docker/cli-plugins使用插件(不使用sudo)。
一个比较健壮的解决方案是创建一个如上所述的链接。

相关问题