OS: Ubuntu 18.04 Server
Docker 18.3 CE
Run Code Online (Sandbox Code Playgroud)
我使用PuTTY SSH会话从Windows 10笔记本电脑登录服务器.
我的本地Windows笔记本电脑上没有Docker,因此所有工作都在远程服务器上完成.
我可以使用终端会话在远程服务器上执行所有Docker命令.
但是,当我尝试将我的图像保存到Docker中心时,当我尝试登录时,使用:
docker login
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
error getting credentials - err: exit status 1, out: `GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.secrets was not provided by any .service files`
Run Code Online (Sandbox Code Playgroud)
当我在远程服务器上创建我的图像时,我没有收到任何错误消息.
我也没有在远程服务器上的相关主目录中看到.docker文件夹.有任何想法吗?
Ani*_*ese 120
在ubuntu中安装以下软件包修复了我的问题
sudo apt install gnupg2 pass
Jea*_*oin 91
我遇到过同样的问题.目前的答案有效,但它以明文形式保存了凭据.如果您想将它们保存在密码存储区中,这就是解决方案.
1)从https://github.com/docker/docker-credential-helpers/releases下载docker-credential-pass
2) tar -xvf docker-credential-pass.tar.gz
3) chmod u+x docker-credential-pass
4)您需要设置docker-credential-pass(以下步骤基于https://github.com/docker/docker-credential-helpers/issues/102#issuecomment-388634452)
4.1)安装gpg和pass(mv docker-credential-pass /usr/bin)
4.2)apt-get install gpg pass,输入您的信息.你应该看到这样的东西:
pub rsa3072 2018-10-07 [SC] [expires: 2020-10-06]
1234567890ABCDEF1234567890ABCDEF12345678
Run Code Online (Sandbox Code Playgroud)
复制123 ...行
4.3)gpg --generate-key(粘贴)
4.4)pass init 1234567890ABCDEF1234567890ABCDEF12345678并设置下一个密码"pass is initialized"(不带引号).
4.5)pass insert docker-credential-helpers/docker-pass-initialized-check.您应该看到pass已初始化.
4.6) pass show docker-credential-helpers/docker-pass-initialized-check
5)创建一个〜/ .docker/config.json:
{
"credsStore": "pass"
}
Run Code Online (Sandbox Code Playgroud)
6)docker login现在应该可以工作了
注意:如果在将来的运行中收到错误"pass store isinitialized",请运行以下命令(它将在内存中重新加载pass store):
pass show docker-credential-helpers/docker-pass-initialized-check
Run Code Online (Sandbox Code Playgroud)
它会询问您的密码,并会初始化密码存储区.
这是基于这个讨论:https: //github.com/moby/moby/issues/25169#issuecomment-431129898
bak*_*rak 35
我在ubuntu 18.08中遇到了同样的问题,这最终对我有用..作为临时解决方案.
我创建了这个文件夹,home/.docker/因为有些解决方案建议我创建一个文件config.json并在其中写入默认凭据,即
{
"credsStore": "pass"
}
Run Code Online (Sandbox Code Playgroud)
config.json.然后将docker-credential-secretservice重命名为其他内容,以便它不会获取此文件.
sudo mv/usr/bin/docker-credential-secretservice/usr/bin/docker-credential-secretservice_x
它工作了!
小智 21
这在我的 Ubuntu 18 中对我有用:
docker logout
mv ~/.docker/config.json ~/.docker/config_old.json
docker login
Run Code Online (Sandbox Code Playgroud)
这也可能有帮助,至少在 Ubuntu 20.04 中是这样:
wget https://github.com/docker/docker-credential-helpers/releases/download/v0.6.3/docker-credential-secretservice-v0.6.3-amd64.tar.gz && tar -xf docker-credential-secretservice-v0.6.3-amd64.tar.gz && chmod +x docker-credential-secretservice && mv docker-credential-secretservice /usr/local/bin/
Run Code Online (Sandbox Code Playgroud)
https://hackernoon.com/getting-rid-of-docker-plain-text-credentials-88309e07640d https://github.com/docker/docker-credential-helpers/releases
小智 7
我遇到了这个问题(无头 Ubuntu 20,从 16,18 升级),其他答案都不适合我。最后,在阅读了此处发布的一些讨论后,我发现问题是gnome-keyring已安装但无法正常工作。由于这是无头的,所以正确的答案是删除 gnome-keyring (因为它提供了org.freedesktop.secrets服务),然后它就完美地工作了。
sudo apt remove gnome-keyring golang-docker-credential-helpers
Run Code Online (Sandbox Code Playgroud)
对我来说,最简单的解决方案是在用户主目录中的 .docker 目录下创建 config.json 文件:
/home/.docker/config.json
然后我从我能够登录到 docker hub 的服务器复制了这个文件的内容。
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "SOMEVALUE"
}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/18.06.1-ce (linux)"
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个简单的解决方法,因为它不需要您安装或更新我们在生产服务器上无法轻松完成的任何包。
简单的解决方案:只需"credsStore": "secretservice"从 ~/.docker/config.json 中删除
小智 5
我的问题是通过使用 sudo 运行脚本解决的!
sudo docker login -u YOU-USERNAME
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31408 次 |
| 最近记录: |