合成:无法检索 .docker/config.json
Kompose up: Unable to retrieve .docker/config.json
我正在使用 kompose 在 Mac 上转换一个简单的 docker-compose 文件。但是每次我 运行 合成时我都会得到:
WARN Unable to retrieve .docker/config.json authentication details. Check that 'docker login' works successfully on the command line.: Failed to read authentication from dockercfg
INFO Authentication credentials are not detected. Will try push without authentication.
INFO Attempting authentication credentials 'docker.io
ERRO Unable to push image 'bolbeck/simplepythonimage:latest' to registry 'docker.io'. Error: denied: requested access to the resource is denied
FATA Error while deploying application: k.Transform failed: Unable to push Docker image for service firstpythonhw: unable to push docker image(s). Check that `docker login` works successfully on the command line
kompose convert 工作正常,因为它不会尝试拉取图像。另外 docker login
在终端上工作得很好,我可以手动推送图像。
这是 docker-compose 文件:
version: "3"
services:
firstpythonhw:
build: .
image: MyAccount/pythonimage
container_name: pythonhw
ports:
- "5000:5000"
我正在使用 Kompose 1.18.0 版和 Minikube 1.4.0 版
根据 Kompose documentation, during Push 图像操作,Docker 身份验证数据实际上是从以下文件夹检查顺序中的 docker 配置文件中检索到的:
$DOCKER_CONFIG/config.json, $HOME/.docker/config.json , $HOME/.dockercfg
事实上,当您通过 docker login
登录注册表时,该命令会将凭据保存在 config.json
文件中。然而,Docker 还提供了一种如何通过 Credential stores 在外部存储用户身份验证数据的方法,作为甚至 OS 宽钥匙链的主要存储。但是这次 Kompose
将无法识别 Docker 配置文件和整个内容结构。
在 Mac 中你可以找到 macOS keychain,因为你已经检查了 docker login
我想 base64 编码的凭据没有存储在 config.json
文件中,它们只是在特定的 macOS.
上导出到 “osxkeychain”
更新:
典型的config.json
文件结构:
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "base64 encoded username:password"
}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/18.09.7 (linux)"
}
}
尝试以下命令在您的机器上生成 base64 字符串
echo -n 'username:password' | base64
获取此
的输出
并添加到 docker 撰写文件
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "your base 64 string"
}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/18.09.7 (linux)"
}
}
我正在使用 kompose 在 Mac 上转换一个简单的 docker-compose 文件。但是每次我 运行 合成时我都会得到:
WARN Unable to retrieve .docker/config.json authentication details. Check that 'docker login' works successfully on the command line.: Failed to read authentication from dockercfg
INFO Authentication credentials are not detected. Will try push without authentication.
INFO Attempting authentication credentials 'docker.io
ERRO Unable to push image 'bolbeck/simplepythonimage:latest' to registry 'docker.io'. Error: denied: requested access to the resource is denied
FATA Error while deploying application: k.Transform failed: Unable to push Docker image for service firstpythonhw: unable to push docker image(s). Check that `docker login` works successfully on the command line
kompose convert 工作正常,因为它不会尝试拉取图像。另外 docker login
在终端上工作得很好,我可以手动推送图像。
这是 docker-compose 文件:
version: "3"
services:
firstpythonhw:
build: .
image: MyAccount/pythonimage
container_name: pythonhw
ports:
- "5000:5000"
我正在使用 Kompose 1.18.0 版和 Minikube 1.4.0 版
根据 Kompose documentation, during Push 图像操作,Docker 身份验证数据实际上是从以下文件夹检查顺序中的 docker 配置文件中检索到的:
$DOCKER_CONFIG/config.json, $HOME/.docker/config.json , $HOME/.dockercfg
事实上,当您通过 docker login
登录注册表时,该命令会将凭据保存在 config.json
文件中。然而,Docker 还提供了一种如何通过 Credential stores 在外部存储用户身份验证数据的方法,作为甚至 OS 宽钥匙链的主要存储。但是这次 Kompose
将无法识别 Docker 配置文件和整个内容结构。
在 Mac 中你可以找到 macOS keychain,因为你已经检查了 docker login
我想 base64 编码的凭据没有存储在 config.json
文件中,它们只是在特定的 macOS.
更新:
典型的config.json
文件结构:
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "base64 encoded username:password"
}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/18.09.7 (linux)"
}
}
尝试以下命令在您的机器上生成 base64 字符串
echo -n 'username:password' | base64
获取此
的输出并添加到 docker 撰写文件
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "your base 64 string"
}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/18.09.7 (linux)"
}
}