Docker:无法读取 CA 证书:没有这样的文件或目录

问题描述 投票:0回答:2

我在 OSX 上,之前使用过 docker-machine,但现在有一个原生的 Docker for Mac 我想安装它。 所以我使用this uninstall script卸载了docker-machine,然后安装并启动了Docker for Mac,没有出现任何问题。

我可以运行

docker --help
,它会按预期显示所有选项。

但是,当我运行

docker ps
时,我得到以下信息:

$ docker ps 无法读取 CA 证书“/Users/kramer65/.docker/machine/machines/default/ca.pem”:打开 /Users/kramer65/.docker/machine/machines/default/ca.pem:没有这样的文件或目录

我尝试了这个答案中的解决方案(包括采购

.bash_profile
来激活它),但这并没有解决任何问题。

有人知道我可以做什么来解决这个问题吗?

macos docker certificate
2个回答
7
投票

请删除您的旧 docker-machine

docker-machine rm default

然后,编辑您的 .bashrc .profile 或 .zshrc (无论您使用什么)并删除导出 DOCKER 环境变量的任何内容(如套接字、主机、端口等)。

至少重新启动你的shell,你就可以重新启动你的Mac了。当你这样做时

env | grep DOCKER

您应该什么也看不到。

docker ps
现在应该可以完美运行。

背景: 问题是旧的

dockertoolbox
定义了一个自定义主机/端口并将其放入您的 bashrc 中,并且在卸载后不会将其删除。

docker for mac 使用 Unix 默认套接字,但在删除那些旧的 ENV 变量之前它不会被拾取


0
投票

在 PowerShell 中运行这些命令并重新打开:

[Environment]::SetEnvironmentVariable("DOCKER_CERT_PATH", $null, "User")
[Environment]::SetEnvironmentVariable("DOCKER_HOST", $null, "User")
[Environment]::SetEnvironmentVariable("DOCKER_MACHINE_NAME", $null, "User") [Environment]::SetEnvironmentVariable("DOCKER_TLS_VERIFY", $null, "User") 
[Environment]::SetEnvironmentVariable("DOCKER_TOOLBOX_INSTALL_PATH", $null, "User")
© www.soinside.com 2019 - 2024. All rights reserved.