我在 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
来激活它),但这并没有解决任何问题。
有人知道我可以做什么来解决这个问题吗?
请删除您的旧 docker-machine
docker-machine rm default
然后,编辑您的 .bashrc .profile 或 .zshrc (无论您使用什么)并删除导出 DOCKER 环境变量的任何内容(如套接字、主机、端口等)。
至少重新启动你的shell,你就可以重新启动你的Mac了。当你这样做时
env | grep DOCKER
您应该什么也看不到。
docker ps
现在应该可以完美运行。
背景: 问题是旧的
dockertoolbox
定义了一个自定义主机/端口并将其放入您的 bashrc 中,并且在卸载后不会将其删除。
docker for mac 使用 Unix 默认套接字,但在删除那些旧的 ENV 变量之前它不会被拾取
在 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")