执行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
答案 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