繁体   English   中英

docker-compose:客户端版本太新

[英]docker-compose: client version is too new

当执行DOCKER_API_VERSION=1.35 docker-compose --verbose up我得到:

-d compose.config.config.find:使用配置文件:./docker-compose.yml docker.utils.config.find_config_file:尝试路径:['/home/vivo/.docker/config.json', '/home /vivo/.dockercfg'] docker.utils.config.find_config_file: 找不到配置文件 docker.utils.config.find_config_file: 尝试路径: ['/home/vivo/.docker/config.json', '/home /.dockercfg'] docker.utils.config.find_config_file: 找不到配置文件 urllib3.connectionpool._make_request: http://localhost:None "GET /v2.25/version84 HTTP/1.1" 最近调用 400 ):
文件“site-packages/docker/api/client.py”,第 261 行,在 raise_for_status 文件“site-packages/requests/models.py”,第 940 行,在 raise_for_status requests.exceptions.HTTPError:400 客户端错误:错误请求对于 url:http+docker://localhost/v2.25/version

在处理上述异常的过程中,又出现了一个异常:

回溯(最后一次调用):文件“bin/docker-compose”,第 6 行,文件“compose/cli/main.py”,第 71 行,主文件 j

“compose/cli/main.py”,第 124 行,在 perform_command 文件中 “compose/cli/command.py”,第 42 行,在 project_from_options 文件中 “compose/cli/command.py”,第 123 行,在 get_project 文件中 “compose /cli/command.py”,第 97 行,get_client 文件“site-packages/docker/api/daemon.py”,第 181 行,版本文件“site-packages/docker/api/client.py”,第 267 行,在 _result 文件“site-packages/docker/api/client.py”,第 263 行,在 _raise_for_status
文件“site-packages/docker/errors.py”,第 31 行,在 create_api_error_from_http_exception docker.errors.APIError:400 客户端错误:错误请求(“客户端版本 2.25 太新。支持的最大 API 版本为”)

我的 docker 版本:

docker-tutorial % docker 版本客户端:版本:
18.06.3-ce API version: 1.27 Go version: go1.10.3 Git commit: d7080c1 Built: Wed Feb 20 02:27:13 2019 OS/Arch: linux/amd64 Experimental: false

服务器:引擎:版本:18.06.3-ce API 版本:
1.38(最低版本 1.12) Go 版本:go1.10.3 Git 提交:d7080c1 内置:2019 年 2 月 20 日星期三 02:25:38 操作系统/架构:
linux/amd64 实验性:假

我的 docker-compose 版本:

docker-tutorial % docker-compose version docker-compose version 1.24.1, build 4667896b docker-py version: 3.7.3 CPython version: 3.6.8 OpenSSL version: OpenSSL 1.1.0j 20 Nov 2018

还有我的 docker-compose.yml:

version: '2.3'

services:
    app:
        image: php:7.2-apache
        volumes:
            - .:/var/www/html
        ports:
            - 8000:80

基于此文档,我认为您要设置COMPOSE_API_VERSION

COMPOSE_API_VERSION

Docker API 仅支持来自报告特定版本的客户端的请求。 如果您使用 docker-compose 收到“客户端和服务器没有相同版本错误”,您可以通过设置此环境变量来解决此错误。 设置版本值以匹配服务器版本。

您的 docker 版本 api 是18.06.3-ce API version: 1.27

因此DOCKER_API_VERSION=1.35对于该版本来说太新了,请尝试使用:

DOCKER_API_VERSION=1.27

或升级您的 docker 安装。

请参考这里
问题似乎已在 Docker 版本 18.09 及更高版本中得到修复。 值得升级。 如果您不希望您的容器在 Docker 版本升级时受到影响,请在您的daemon.json上启用live-restore并执行systemctl reload daemon 之后执行升级。

在基于 linux 的发行版上运行有时会在 apt 更新后发行版中有更新时发生,

您可以作为服务重新启动,有时这可以解决问题。 sudo service docker restart

在其他情况下,它可能是 ISO 缓存问题,可以使用docker-machine upgrade dev/YourMachineName

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM