解决docker问题 – 编写不同的客户端服务器会导致新的错误,说明降级Docker SDK for Python的版本

我的docker版本是

docker version Client version: 1.6.2 Client API version: 1.18 Go version (client): go1.2.1 Git commit (client): 7c8fca2 OS/Arch (client): linux/amd64 Server version: 1.6.2 Server API version: 1.18 Go version (server): go1.2.1 Git commit (server): 7c8fca2 OS/Arch (server): linux/amd64 

和我的docker组成版本是

 docker-compose version 1.14.0, build c7bdf9e docker-py version: 2.4.2 CPython version: 2.7.6 OpenSSL version: OpenSSL 1.0.1f 6 Jan 2014 

因此很明显,我的docker客户端和服务器有相同的版本,但仍然

 docker-compose -f docker-compose.yml down 

给出一个错误

  client and server don't have same version (client : 1.22, server: 1.18) 

我发现这个答案解决了docker问题,导致“客户端和服务器没有相同的版本(客户端:1.14,服务器:1.12)”错误,但客户端和服务器版本相同

 export COMPOSE_API_VERSION=1.18 

但是现在出现了一个新的问题

 /usr/local/lib/python2.7/dist-packages/docker/api/client.py:161: UserWarning: The minimum API version supported is 1.21, but you are using version 1.18. It is recommended you either upgrade Docker Engine or use an older version of Docker SDK for Python. 'Python.'.format(MINIMUM_DOCKER_API_VERSION, self._version) Removing network net_basic Traceback (most recent call last): File "/usr/local/bin/docker-compose", line 11, in <module> sys.exit(main()) File "/usr/local/lib/python2.7/dist-packages/compose/cli/main.py", line 68, in main command() handler(command, command_options) File "/usr/local/lib/python2.7/dist-packages/compose/cli/main.py", line 358, in down self.project.down(image_type, options['--volumes'], options['--remove-orphans']) self.networks.remove() File "/usr/local/lib/python2.7/dist-packages/compose/network.py", line 247, in remove network.remove() File "/usr/local/lib/python2.7/dist-packages/compose/network.py", line 89, in remove self.client.remove_network(self.full_name) File "/usr/local/lib/python2.7/dist-packages/docker/utils/decorators.py", line 31, in wrapper f.__name__, version docker.errors.InvalidVersion: remove_network is not available for version < 1.21 

现在我该怎么办? 有两点需要考虑,尽pipe客户端有一个1.18的版本,该命令仍然指出它是1.22? 为什么。 以防万一我以某种方式升级客户端和服务器到1.22(请告诉我是如何),如果不同的客户端和服务器的问题出现,我不得不求助于COMPOSER_API_VERSION = 1.18,同样的问题升级到较新版本的Docker引擎或使用较旧版本的Docker SDK for python。 这是一个恶性循环吗?