我正在尝试从boot2docker迁移到docker-machine。
我按照here的说明安装了docker,但我不断收到以下消息:
Could not read CA certificate "/Users/<useraccountfolder>/.boot2docker/certs/boot2docker-vm/ca.pem": open /Users/<useraccountfolder>/.boot2docker/certs/boot2docker-vm/ca.pem: no such file or directory
当我运行大多数docker命令时。
答案 0 :(得分:23)
我找到了解决方案here
我需要将我的.bash_profile更新为:
export DOCKER_HOST=tcp://192.168.99.100:2376
export DOCKER_MACHINE_NAME=default
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH=~/.docker/machine/machines/default
然后运行以下命令以生成缺少的ca.pem:
docker-machine regenerate-certs default
我发布了这个以防万一这可以帮助其他人。谢谢/道具在github上的那个帖子中的每个人都会在一小时的痛苦之后找到。
答案 1 :(得分:7)
请遵循以下指南: new file structure
为我工作,您需要取消设置变量,而不是为mac创建变量。
# grep for DOCKER ENV vars
env | grep DOCKER
unset <DOCKER_VARS>
答案 2 :(得分:2)
通常大多数人都安装了boot2docker和旧版本的virtualbox。如安装指南中所述,在安装Docker for Mac之前,我们必须卸载boot2docker并将virtualbox重新安装到高版本。 https://docs.docker.com/engine/installation/mac/#/docker-for-mac
即使我们安装了Docker for Mac,我们仍然遇到错误“无法读取CA证书”。
我的解决方案是从.bash_profile
中删除与docker相关的环境变量(DOCKER *)。这似乎是一个长期的解决方案。
vim ~/.bash_profile
评论类似 DOCKER _ *
source ~/.bash_profile
docker info
或docker ps
希望它有所帮助。
答案 3 :(得分:1)
由于将环境设置为特定的docker计算机,后来又删除了我的环境,但我的环境仍设置为已删除的计算机,因此遇到了相同的错误。因此,将docker调用重定向到一台不存在的计算机,从而导致该错误。
我未设置环境变量,此问题已解决:
eval $(docker-machine env -u)
要查看要取消设置哪个环境变量,请运行:
docker-machine env -u
答案 4 :(得分:0)
如果文件存在于DOCKER_CERT_PATH
env变量中,则由于文件权限问题也可能导致错误。请检查此用例。
答案 5 :(得分:0)
我在macOS中的解决方案是清除~/.bash_profile
或~/.bashrc
以外的缺少证书的引用:
unset ${!DOCKER*}
来源:https://forums.docker.com/t/initial-install-of-docker-for-mac-could-not-read-ca-certificate/9170/7
答案 6 :(得分:0)
我Mac上的启动板中的Docker退出了工作,同时退出了终端的命令。我只想说说我为我修复它所做的事情,无论它是否有意义,以防他人帮助。
unset ${!DOCKER*}
然后我跑了:
export DOCKER_HOST=tcp://192.168.99.100:2376
export DOCKER_MACHINE_NAME=default
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH=~/.docker/machine/certs/
然后我运行:docker
(仅部分起作用)
unset ${!DOCKER*}
答案 7 :(得分:-2)
如果仍然无效,请运行:
find . -name ca.pem
要找出它的位置,然后修改DOCKER_CERT_PATH=<the path you find out>
,在Mac上,它必须是.bash_profile
。如果您在.oh-my-zsh
输入此内容,则无效。