docker 登录: Error when manually logging into private Registry

标签 docker docker-compose debian ubuntu-18.04 docker-registry

我无法从 CLI 手动登录我的私有(private) GitLab Docker 注册表:

# docker login -u "${DOCKER_USER}" -p "${DOCKER_PASS}" "${DOCKER_URL}"
error getting credentials - err: exit status 1, out: `Cannot autolaunch D-Bus without X11 $DISPLAY`

系统信息:

  • Ubuntu 18.04
  • docker-ce 18.03.1~ce~3-0~ubuntu(来自官方仓库,无安装脚本)

没有任何用户的 ~/.docker/config.json 并且我正在以 root 身份执行 docker login。 在 Google 上,我只是找到了对 export DISPLAY 的建议... docker 只能在 GUI 环境中登录到远程注册表吗? 导出 DISPLAY=0:0 产生:

error getting credentials - err: exit status 1, out: `Failed to execute child process “dbus-launch” (No such file or directory)`

我是否缺少一些依赖项?否则 Docker 运行良好,但登录不起作用。我知道有存储凭据的后端,但我不想存储凭据。我只是想对我的注册表进行身份验证以提取图像,这在 Docker ootb 中不起作用吗?

最佳答案

docker-compose包不必要地依赖损坏的 golang-github-docker-docker-credential-helpers包裹。删除可执行文件可以解决此问题。

rm /usr/bin/docker-credential-secretservice

注意:这是一种解决方法,每次更新包时都需要重复。

这会影响 Ubuntu 18.04(可能还有其他非 LTS 版本)和一些 Debian releases .

关于 docker 登录: Error when manually logging into private Registry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51153265/

相关文章:

docker - 如何路由到服务中的特定容器

docker 组成 : Cannot connect to Redis

linux - Debian安装完成后运行脚本

c++ - 在 X11 下如何判断你的光标是否指向你的桌面

docker - 将本地环境变量传递给docker

mysql - 使用 Docker-Compose 连接到 MariaDB 时出错, "Connection Lost: The server closed the connection"

php - "E: Package ' php-soap ' has no installation candidate"on php :7. 0-fpm Docker 镜像。退出代码:100

docker [emerg] 1#1 : host not found in upstream after separate compose file

java - 无法在 Iceweasel 上运行 java 8u71

linux - 主机卷中的符号链接(symbolic link)如何在 Docker 容器中工作?