Docker和Docker-compose安装
下面是Centos7安装和配置Docker以及Docker-compose的shell脚本,其他操作系统可以参考修改来安装。其中Docker版本为docker-ce,Docker-compose版本为1.22.0
#!/bin/sh
### 更新 ###
yum -y update
### 安装docker ###
# 安装一些必要的系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新 yum 缓存
sudo yum makecache fast
# 安装 Docker-ce
sudo yum -y install docker-ce
# 启动docker并设置为开机启动(centos7)
systemctl start docker.service
systemctl enable docker.service
# 替换docker为国内源
echo '{"registry-mirrors": ["https://registry.docker-cn.com"],"live-restore": true}' > /etc/docker/daemon.json
systemctl restart docker
#验证
sudo docker --version
# 安装dokcer-compose
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# 安装命令补全工具
yum -y install bash-completion
curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
#验证
docker-compose --version
### 安装docker结束 ###
Linux使用curl 方式安装docker-compose 后执行docker-compose version 检查安装是否成功时出错的解决办法
错误:
[root@fd240 bin]# ./docker-compose
Cannot open self /usr/local/bin/docker-compose or archive /usr/local/bin/docker-compose.pkg
0x1.解决办法:
进入下面的网址下载目前的最新版:
https://github.com/docker/compose/releases/tag/1.25.0-rc4
网页拉到最下面,下载:
docker-compose-Linux-x86_64
然后将文件上传到 /usr/local/bin/ 文件夹下,然后将其重命名为docker-compose,修改此文件的权限,增加可执行:chmod +x /usr/local/bin/docker-compose
然后再运行
[root@fd240 bin]# docker-compose version
docker-compose version 1.25.0-rc4, build 8f3c9c58
docker-py version: 4.1.0
CPython version: 3.7.4
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
可以看到已经没有问题了。
0x2.原因:
使用官方文档中所描述的方法:
curl -L https://github.com/docker/compose/releases/download/1.14.0-rc2/docker-compose-uname -s
-uname -m
> /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
安装时,curl下载下来的文件是不完整的,而且没有给出任何错误信息。我猜测是https的问题,没有深究。
可以看到我通过curl下载的文件比使用浏览器下载后又上传到服务器上的文件大小要小:
[root@fd240 bin]# ll
total 16164
-rwxr-xr-x. 1 root root 8278064 6月 19 15:21 docker-compose
-rwxrwxrwx. 1 root root 8268354 6月 19 14:58 docker-compose-curl