docker login 在未安装 X11 的服务器上失败

标签 docker docker-registry ubuntu-server

我正在尝试在私有(private) docker 注册表上部署带有图像的 docker 配置。

现在,每次执行 docker login registry.example.com 时,都会收到以下错误消息:

error getting credentials - err: exit status 1, out: Cannot autolaunch D-Bus without X11 $DISPLAY

我为非 MacOS 用户找到的唯一解决方案是先运行 export $(dbus-launch),但这并没有改变任何东西。

我正在运行 Ubuntu Server 并尝试使用 Ubuntu Docker 包和 Docker-CE 包。

如何在没有 X11 session 的情况下登录?

最佳答案

看起来这是因为它默认使用 secretservice 可执行文件,由于某种原因,该可执行文件似乎具有某种 X11 依赖项。如果您安装和配置 pass docker 将使用它,这似乎可以解决问题。

简而言之(来自 https://github.com/docker/compose/issues/6023)

sudo apt install gnupg2 pass 
gpg2 --full-generate-key

这将为您生成一个 gpg2 key 。完成后,您可以列出它

gpg2 -k

复制 key ID(从标记为 [uid] 的行中)并执行

pass init "whatever key id you have"

现在 docker login 应该可以工作了。

在启动板上记录了几个与此相关的错误:

https://bugs.launchpad.net/ubuntu/+source/golang-github-docker-docker-credential-helpers/+bug/1794307

https://bugs.launchpad.net/ubuntu/+source/docker-compose/+bug/1796119

关于docker login 在未安装 X11 的服务器上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51222996/

相关文章:

docker - 有没有一种方法可以在主机上不存在的Docker容器之间共享文件?

amazon-s3 - docker-registry v2.2.0 S3配置未覆盖

amazon-web-services - 结合使用AWS ECR和Portainer推/拉图像不起作用

macos - 将标签推送到 Artifactory 中的私有(private) docker 注册表从 mac 失败

amazon-web-services - Docker 推送错误保存凭据 : error storing credentials - err: exit status 1, 输出: `not implemented`

jenkins - 使用Jenkins运行Docker容器

Docker 注册表 : Can't find image

Java, rJava 安装在 AWS EC2 for R (xlsx and other packages)

Linux - 没有硬件声卡,捕获音频播放,并将其记录到文件

c# - 删除充满文件的文件夹不会立即释放空间