系统和码头工人信息
-
<李>(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.12.x升级至1.21.x(21版本以上,目前是1.23.2)~
操作过程
-
<李>(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> 代码,请执行上面提到的解决方法~,然后再次安装docker-compose即可。李>参考文档
-
<李>删除distutils安装的内容李>