Docker Compose在不同环境的多种装置形式

[toc]

一、在线装置

目前只尝试了linux x86架构在线装置

1. 下载 docker-compose

下载 docker-compose到 /usr/local/bin/

$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

2. 给 docker-compose 执行权限

$ sudo chmod +x /usr/local/bin/docker-compose

3.验证一下

[root@localhost bin]# docker-compose -versiondocker-compose version 1.21.2, build e7de1bc

二、离线装置

(一)linux x86装置docker-compose过程

形式1. 应用二进制文件装置

linux x86只有把https://github.com/docker/compose/releases中的对应linux版本的docker-compose二进制文件下载到本地并发送linux下,复制到 /usr/local/bin/就能够失常应用。

形式2. 应用python编译装置

从github上下载dockerCompoes源码。而后执行上面步骤:

  • 进入到docker-compose的源码目录
  • 执行python setup.py install

(二)其余没有二进制文件的零碎装置过程

有些架构的docker-compose二进制文件官网没有提供,须要本人手动编译装置。其余官网没有提供的也须要本人手动应用python编译装置

通过尝试发现如同只有应用python编译能够胜利装置,另外上面三种形式都失败了。

应用python编译装置

应用docker-compose github源码,python编译装置。

  1. 进入到docker-compose的源码目录
  2. 执行python setup.py install
报错

始终再报requests10版本谬误,删除10版本,换了16版本,又报docker必须的requests2.14以上,阐明下载的docker-compose源码版本和装置的docker版本不对应.

下载并查看源码下的requirements.txt文件中的requests版本,找到和已装置的docker对应版本,而后再次装置,又报texttable版本不正确。而且无网络不能主动下载,只能手动到https://pypi.org/project/texttable/下面找对应版本下载,编译装置。

解决短少依赖的问题

这类短少依赖的问题都要到python官网下载,而后通过编译装置。一个例子:

装置requests、texttable两个依赖,并且docker-compose与docker版本对应。继续执行python编译装置

  1. 进入到docker-compose得源码目录
  2. 执行python setup.py install

报错:

Installed /usr/lib/python2.7/site-packages/docker_compose-1.21.2-py2.7.eggProcessing dependencies for docker-compose==1.21.2Searching for docker<4.0,>=3.3.0Reading https://pypi.python.org/simple/docker/Download error on https://pypi.python.org/simple/docker/: [Errno -2] Name or service not known -- Some packages may not be found!Couldn't retrieve index page for 'docker'Scanning index of all packages (this may take a while)Reading https://pypi.python.org/simple/Download error on https://pypi.python.org/simple/: [Errno -2] Name or service not known -- Some packages may not be found!No local packages or download links found for docker<4.0,>=3.3.0error: Could not find suitable distribution for Requirement.parse('docker<4.0,>=3.3.0')

起因:python下的docker版本谬误,从新到https://pypi.python.org/simpl...,并编译装置

  • 进入到下载得python docker3.3.0目录下
  • 执行命令python setup.py install
  • 输入:

    ......Using /usr/lib/python2.7/site-packages/idna-2.5-py2.7.eggSearching for chardet==3.0.2Best match: chardet 3.0.2Processing chardet-3.0.2-py2.7.eggchardet 3.0.2 is already the active version in easy-install.pthInstalling chardetect script to /usr/binUsing /usr/lib/python2.7/site-packages/chardet-3.0.2-py2.7.eggFinished processing dependencies for docker==3.3.0
  • 再次进入docker-compose-1.21.2目录

应用python装置docker-compose

    [root@localhost docker-3.3.0]# cd ../docker-compose-1.21.2/    [root@localhost docker-compose-1.21.2]# ls    build         compose          dist                     LICENSE      README.rst            setup.cfg  tests    CHANGELOG.md  contrib          docker_compose.egg-info  MANIFEST.in  requirements-dev.txt  setup.py   tox.ini    CHANGES.md    CONTRIBUTING.md  Dockerfile         [root@localhost docker-compose-1.21.2]# python setup.py install

最初装置胜利显示:

    Using /usr/lib/python2.7/site-packages/idna-2.5-py2.7.egg    Searching for chardet==3.0.2    Best match: chardet 3.0.2    Processing chardet-3.0.2-py2.7.egg    chardet 3.0.2 is already the active version in easy-install.pth    Installing chardetect script to /usr/bin    Using /usr/lib/python2.7/site-packages/chardet-3.0.2-py2.7.egg    Finished processing dependencies for docker-compose==1.21.2

4.建设软连贯

[root@localhost bin]# ln  -s /usr/bin/docker-compose /usr/local/bin/docker-compose

5.验证一下

[root@localhost bin]# docker-compose -versiondocker-compose version 1.21.2, build e7de1bc

三、其余

python装置模块如何通过setup.py装置

  • 进入装置目录
  • python setup.py build
  • python setup.py install

其余尝试失败的装置形式

1.应用二进制文件装置

找编译好的二进制文件,尝试放到/usr/local/bin上面,报错:无奈执行这个二进制文件。

2.应用dep装置

下载对应的dep安装包,解压data文件,把docker-compose放到/usr/local/bin下,执行报错:/usr/bin/python3:坏的的解释器
找镜像,找不到可用的镜像

3.make装置

开始应用make装置,发现短少通常liunx下编译装置的configuration文件,应用./configuration 报错找不到文件