由于我刚刚将Docker更新到1.1.0,所以我得到了:
来自守护程序的错误响应:客户端和服务器的版本不同(客户端:1.13,服务器:1.12)
你知道如何解决这个问题吗?
我切换回1.0.1,一切再次正常。
由于我刚刚将Docker更新到1.1.0,所以我得到了:
来自守护程序的错误响应:客户端和服务器的版本不同(客户端:1.13,服务器:1.12)
你知道如何解决这个问题吗?
我切换回1.0.1,一切再次正常。
boot2docker
问题(以备将来参考)。
Answers:
看起来您需要在安装boot2docker之后升级VM:
如果要从boot2docker 0.12或更高版本升级,则可以使用boot2docker stop && boot2docker download && boot2docker up更新现有的虚拟机(使用安装程序升级后)-并且不会丢失现有数据。
(https://github.com/boot2docker/osx-installer/releases/tag/v1.1.0)
An error occurred trying to connect: Get https://192.168.59.103:2376/v1.19/containers/json?all=1: x509: certificate is valid for 127.0.0.1, 10.0.2.15, not 192.168.59.103
:/
boot2docker delete
,然后boot2docker init
它开始工作。
如果您已经更新了Docker,但是该服务尚未重新启动,则可能会发生这种情况。然后,您将尝试使用更新后的客户端连接到Docker守护程序,而该守护程序(在更新之前已在运行)仍在运行旧版本。
要解决此问题,请重新启动服务:
sysV初始化:
service docker restart
systemd:
systemctl daemon-reload
systemctl restart docker
systemd
建议做systemctl daemon-reload
之前systemctl restart docker
我拥有最新版本的boot2docker,docker和virtual box,但仍收到此消息。似乎跑步brew upgrade boot2docker
不是最好的主意。在运行时boot2docker upgrade
,系统要求我设置一些环境变量,然后它对我有用。
Boot2docker要求我进行设置(请参阅最后几行):
$ boot2docker upgrade
Latest release for boot2docker/boot2docker is v1.3.0
Downloading boot2docker ISO image...
Success: downloaded https://github.com/boot2docker/boot2docker/releases/download/v1.3.0/boot2docker.iso
to /Users/.../.boot2docker/boot2docker.iso
Waiting for VM and Docker daemon to start...
.........oooooooooooooo
Started.
Writing /Users/.../.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/.../.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/.../.boot2docker/certs/boot2docker-vm/key.pem
To connect the Docker client to the Docker daemon, please set:
export DOCKER_HOST=tcp://192.168.59.103:2376
export DOCKER_CERT_PATH=/Users/.../.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=1
可以一次性将这三行剪切并粘贴到终端中。
要检查它们是否正确:
$ env
我正在尝试使用更新的客户端查询Docker服务器:
对我来说,解决方案是:
export DOCKER_API_VERSION=1.21
参考:https : //docs.docker.com/engine/reference/commandline/cli/
正确的答案很旧(Docker已将boot2docker重命名为Docker Machine并为其添加了更多功能)。
无论如何,我遇到了同样的问题,花了我大约3天的时间才解决:(
这是解决方案
1)找到位置 boot2docker.iso
sudo find ~/ -name 'boot2docker.iso'
2)boot2docker.iso
备份后删除文件
/Users/{user}/.docker/machine/cache/boot2docker.iso
3)删除你的docker虚拟机
docker-machine rm {default}
这也应该删除那个:
/Users/{user}/.docker/machine/machines/default/boot2docker.iso
4)创建新的docker vm
docker-machine create --driver virtualbox default
这将boot2docker.iso
首先下载一个新的,然后使用它来创建您的虚拟机。
现在这应该解决它:)
如果您在这里遇到任何错误,例如:
Running pre-create checks...
(mega-docker) No default Boot2Docker ISO found locally, downloading the latest release...
Error with pre-create check: "Get https://api.github.com/repos/boot2docker/boot2docker/releases/latest: dial tcp: lookup api.github.com on 192.168.0.1:53: read udp 192.168.0.103:53947->192.168.0.1:53: i/o timeout"
尝试boot2docker.iso
通过以下网址手动下载文件:https://api.github.com/repos/boot2docker/boot2docker/releases/latest,然后单击html_url
,最后选择下载文件。
一旦您得到文件,将其手动放入 /Users/{user}/.docker/machine/cache/
最终重新运行此命令 docker-machine create --driver virtualbox default
如果您是Ansible而不是boot2docker来的,那么这里是解决方法:使用docker_api_version: auto
参数
- name: Mongo data container
docker:
docker_api_version: auto
name: mongo-primary-dc
image: debian:wheezy
state: present
volumes:
- /data
我想原因是Ansible使用的docker-py模块通常与Ubuntu apt-get存储库版本不同。
boot2docker
。那也是你的情况吗?