docker-compose:客户端版本太新

时间:2019-11-22 15:58:01

标签: docker docker-compose

执行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/vivo/.dockercfg']   docker.utils.config.find_config_file:找不到配置文件   urllib3.connectionpool._make_request:http://localhost:None“获取   /v2.25/version HTTP / 1.1“ 400 84追溯(最近一次拨打电话):
  在第261行的文件“ site-packages / docker / api / client.py”中   _raise_for_status文件“ site-packages / requests / models.py”,第940行,位于raise_for_status request.exceptions.HTTPError:400客户端错误:   网址请求错误:http + docker://localhost/v2.25/version

     

在处理上述异常期间,发生了另一个异常:

     

回溯(最近一次通话最后一次):文件“ bin / docker-compose”,行   6,在主文件中的文件“ compose / cli / main.py”中的第71行   j

     

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

我的docker版本:

  

docker-tutorial%docker version客户端:版本:
  18.06.3-ce API版本:1.27 Go版本:go1.10.3 Git提交:d7080c1内置:2019年2月20日星期三02:27:13   操作系统/ Arch:linux / amd64实验:false

     

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

我的docker-compose版本:

  

docker-tutorial%docker-compose版本docker-compose版本   1.24.1,内部版本4667896b docker-py版本:3.7.3 CPython版本:3.6.8 OpenSSL版本:OpenSSL 1.1.0j 2018年11月20日

还有我的docker-compose.yml:

version: '2.3'

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

3 个答案:

答案 0 :(得分:0)

基于this documentation,我想您要设置COMPOSE_API_VERSION

  

COMPOSE_API_VERSION

     

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

答案 1 :(得分:0)

请参阅here
从Docker版本18.09开始似乎已修复该问题。值得升级。如果您不希望容器在Docker版本升级时受到影响,请在live-restore上启用daemon.json并执行systemctl reload daemon。之后,执行升级。

答案 2 :(得分:0)

在apt update之后发行版中有更新时,有时会在基于Linux的发行版上运行

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

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

解决