一次docker-compose升级问题排查

  

系统和码头工人信息

  
      <李>(1)执行<代码>猫/etc/redhat-release :   
  

<代码> CentOS的Linux版本7.5.1804(核心)

  
      <李>(2)执行<代码>码头工人——版本>   
  

<代码> 17.09.0-ce码头工人版本,构建afdb6d4

  
      <李>(3)执行<代码> docker-compose版本>   
  
 <代码> 1.23.2 docker-compose版本,构建1110 ad0
  docker-py版本:3.7.0
  2.7.5 CPython的版本:
  OpenSSL版本:OpenSSL 1.0.2k-fips 2017年1月26日 
  

事件原因

  

最近由于开发同学项目需求,需要将<代码> docker-compose>   

操作过程

  
      <李>(1)升级皮普并安装docker-compose:李   
  
 <代码> pip安装,升级皮普
  
  pip安装docker-compose==1.23.2  
  

出现如下报错:

  
 <代码>不能卸载“texttable”。distutils安装项目,因此我们不能准确地确定哪些文件属于它只会导致部分卸载。 
  

解决方法:

  

进入<代码>/usr/lib/python(你的版本号)/网站/目录>   

<代码> rm射频texttable - * .egg-info

  
      <李>(2)再次pip安装docker-compose李   
  

<代码> pip安装docker-compose==1.23.2

  

此时,我们使用<代码> docker-compose版本命令是正常的,但是当我们进入docker-compose。yml文件路径,执行<代码> docker-compose起来- d 或<代码> docker-compose ps 时,出现如下报错:

  
 <代码>回溯(最近的电话):
  文件“/usr/bin/docker-compose”, 10号线,在& lt; module>
  sys.exit (main ())
  文件“/usr/lib/python2.7/网站/组合/cli/主要。py”, 71行,在主
  命令()
  文件“/usr/lib/python2.7/网站/组合/cli/主要。在perform_command py”, 124行
  项目=project_from_options ('。”,选项) 
  

或者是这样的报错:

  
 <代码>回溯(最近的电话):
  文件“/usr/bin/docker-compose”, 6号线,在& lt; module>
  从compose.cli。主要进口主要
  文件“/usr/lib/python2.7/网站/组合/cli/主要。py”,行22日& lt; module>
  从. .包导入get_image_digests
  文件“/usr/lib/python2.7/网站/组合/包。py”, 13号线,在& lt; module>
  从.network进口get_network_defs_for_service
  文件“/usr/lib/python2.7/网站/组合/网络。第9行,py”& lt; module>
  从码头工人。类型进口IPAMConfig
  ImportError:不能导入名称IPAMConfig  
  

亦或者是这样的报错:

  
 <代码>回溯(最近的电话):
  文件“/usr/bin/docker-compose”,第7行,& lt; module>
  从compose.cli。主要进口主要
  文件“/usr/lib/python2.7/网站/组合/cli/主要。第17行,py”& lt; module>
  进口码头工人
  ImportError:没有模块命名码头工人 
  

最终的结果都是一样的,就是docker-compose无法使用~ ~

  

这里提供一个处理上面问题的方法

  

为了不碰到上面棘手的报错,正确升级姿势总结如下:

  

主要步骤如下:

  
      <李>   

    (1)使用<代码> pip列表| grep码头工人>   李   <李>   

    (2)手动卸载第一步列出来的包,如下:

      

    & lt; 1比;<代码> pip卸载码头工人

      

    & lt; 2比;<代码> pip卸载docker-compose

      

    & lt; 3比;<代码> pip卸载docker-py

      

    & lt; 4比;<代码> pip卸载docker-pycreds

      

    & lt; 5比;<代码> pip卸载dockerpty

      李   <李>   

    (3)安装docker-compose: <代码> pip安装docker-compose==1.23.2——http://pypi.douban.com/simple/尚胖骰鷓ypi.douban.com # & lt;==这里使用豆瓣的源,比较快~

      李   <李>(4)如果第三步报错<代码>不能卸载的texttable>   
  

参考文档

  
      <李>删除distutils安装的内容李   

一次docker-compose升级问题排查