共计 3639 个字符,预计需要花费 10 分钟才能阅读完成。
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 -version
docker-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 编译装置。
- 进入到 docker-compose 的源码目录
- 执行
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 编译装置
- 进入到 docker-compose 得源码目录
- 执行
python setup.py install
报错:
Installed /usr/lib/python2.7/site-packages/docker_compose-1.21.2-py2.7.egg
Processing dependencies for docker-compose==1.21.2
Searching for docker<4.0,>=3.3.0
Reading 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.0
error: 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.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==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 -version
docker-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
报错找不到文件