centOS安装docker以及docker-compose

本文详细介绍了如何在centOS 7上安装docker和docker-compose。首先,通过yum-utils添加必要软件包和设置yum源,可以选择阿里云仓库。接着,查看并选择docker版本进行安装,启动并设置docker开机启动。最后,提供了两种安装docker-compose的方法。

centOS安装docker步骤

centOS版本: centOS 7

先安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
已加载插件:fastestmirror
Determining fastest mirrors
 * base: mirrors.aliyun.com
 * extras: mirrors.163.com
 * updates: mirrors.aliyun.com
base                                                                                                                                               | 3.6 kB  00:00:00     
extras                                                                                                                                             | 2.9 kB  00:00:00     
updates                                                                                                                                            | 2.9 kB  00:00:00     
(1/4): base/7/x86_64/group_gz                                                                                                                      | 153 kB  00:00:00     
(2/4): extras/7/x86_64/primary_db                                                                                                                  | 227 kB  00:00:02     
base/7/x86_64/primary_db       FAILED 

设置yum源(选择其中一个, 我选的阿里仓库)

yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
已加载插件:fastestmirror
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo

可以查看所有仓库中所有docker版本,并选择特定版本安装

[root@localhost ~]# yum list docker-ce --showduplicates | sort -r
已加载插件:fastestmirror
可安装的软件包
 * updates: mirrors.aliyun.com
Loading mirror speeds from cached hostfile
 * extras: mirrors.163.com
docker-ce.x86_64            3:20.10.5-3.el7                     docker-ce-stable
docker-ce.x86_64            3:20.10.4-3.el7                     docker-ce-stable
docker-ce.x86_64            3:20.10.3-3.el7                     docker-ce-stable
docker-ce.x86_64            3:20.10.2-3.el7                     docker-ce-stable
docker-ce.x86_64            3:20.10.1-3.el7                     docker-ce-stable
docker-ce.x86_64            3:20.10.0-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.9-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.8-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.7-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.6-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.5-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.4-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.3-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.2-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.15-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.14-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.1-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.13-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.12-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.11-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.10-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.0-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.9-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.8-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.7-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.6-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.5-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.4-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.3-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.2-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.1-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.0-3.el7                     docker-ce-stable
docker-ce.x86_64            18.06.3.ce-3.el7                    docker-ce-stable
docker-ce.x86_64            18.06.2.ce-3.el7                    docker-ce-stable
docker-ce.x86_64            18.06.1.ce-3.el7                    docker-ce-stable
docker-ce.x86_64            18.06.0.ce-3.el7                    docker-ce-stable
docker-ce.x86_64            18.03.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            18.03.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.12.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.12.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.09.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.09.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.06.2.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.06.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.06.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.03.3.ce-1.el7                    docker-ce-stable
docker-ce.x86_64            17.03.2.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.03.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.03.0.ce-1.el7.centos             docker-ce-stable
 * base: mirrors.aliyun.com

启动Docker,命令:systemctl start docker,然后加入开机启动,

  • systemctl start docker: 启动docker
  • systemctl enable docker: 设置开启启动docker
[root@localhost ~]# yum install docker-ce-18.03.1.ce
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.163.com
 * updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 docker-ce.x86_64.0.18.03.1.ce-1.el7.centos 将被 安装

安装docker-compose

方式一(简单暴力)

#下载docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 将文件copy到 /usr/bin/目录下
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 查看版本
docker-compose --version

方式二(基于pip安装)

#更新yum
yum -y update

#更新缓存
yum makecache fast

#安装 pip
yum -y install epel-release
yum -y install python-pip
#
yum -y install gcc gcc-c++ kernel-devel
yum -y install python-devel

#查看版本
pip --version

#安装docker-compose
pip install --upgrade pip
pip install docker-compose

#查看版本
docker-compose version

<think>嗯,用户遇到了在CentOS7上运行docker-compose --version时出现Segmentation fault的问题。首先,我得回忆一下Segmentation fault通常是什么原因引起的。通常是程序访问了它没有权限访问的内存地址,或者兼容性问题,比如二进制文件在当前的系统环境下不兼容。 接下来,用户的环境是CentOS7,可能比较老旧,而Docker Compose的版本可能需要更高版本的依赖库。比如glibc的版本是否足够?CentOS7默认的glibc版本可能较低,而新版的Docker Compose可能编译时用了更高版本的glibc,导致不兼容。 然后,用户安装Docker Compose的方式可能有问题。是否按照官方文档推荐的步骤安装?比如直接下载二进制文件还是通过pip安装?如果是下载二进制文件,可能下载的版本不对应系统架构或者依赖缺失。如果是通过pip安装,可能需要检查Python环境是否正常,有没有安装正确的依赖包。 另外,用户是否安装了正确版本的Docker Compose?可能尝试降级到旧版本看看问题是否解决。比如v2.1.1或更早的版本是否兼容CentOS7。 还有,系统的其他依赖库是否有问题?比如libc.so.6或者其他动态链接库是否存在或损坏。可以用ldd命令检查docker-compose的依赖库是否都能找到。 还有可能,系统架构的问题。用户是否在32位系统上运行了64位的docker-compose?或者反之? 另外,是否有SELinux或AppArmor这样的安全模块阻止了docker-compose的运行?暂时禁用它们试试看。 还可以考虑使用Docker官方提供的安装方式,比如通过Docker的仓库安装,或者使用容器化的Docker Compose,避免直接安装二进制文件带来的依赖问题。 最后,查看系统日志,比如/var/log/messages或dmesg,看看有没有更详细的错误信息,帮助定位问题。</think>在CentOS 7中执行 `docker-compose --version` 出现 `Segmentation fault` 错误时,可按以下步骤排查和解决: --- ### 一、问题原因分析 1. **二进制文件兼容性问题** - CentOS 7的`glibc`库版本较旧(默认2.17),而新版本Docker Compose可能依赖更高版本的`glibc` - 系统架构不匹配(如错误下载了ARM版二进制文件) 2. **损坏的安装文件** - 下载的Docker Compose二进制文件不完整或被破坏 3. **Python环境问题**(适用于通过`pip`安装的情况) - Python依赖库冲突或损坏 --- ### 二、排查步骤 #### 1. 验证系统架构和glibc版本 ```bash # 检查系统架构 uname -m # 查看glibc版本 ldd --version | grep ldd ``` #### 2. 检查二进制文件完整性 ```bash # 查看已安装docker-compose路径 which docker-compose # 验证文件类型(应显示ELF 64-bit) file $(which docker-compose) # 检查动态库依赖 ldd $(which docker-compose) ``` 若出现 `not found` 的依赖库,说明存在兼容性问题 --- ### 三、解决方案 #### 方案1:安装兼容版本 ```bash # 卸载当前版本 sudo rm -f /usr/local/bin/docker-compose # 下载v2.1.1旧版本(兼容CentOS 7) sudo curl -L "https://github.com/docker/compose/releases/download/v2.1.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 设置权限 sudo chmod +x /usr/local/bin/docker-compose ``` #### 方案2:通过Docker容器运行(推荐) ```bash # 创建别名替代原生安装 echo 'alias docker-compose="docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v $(pwd):/workdir docker/compose:1.29.2"' >> ~/.bashrc source ~/.bashrc ``` #### 方案3:升级glibc(高风险!) ```bash # 仅适用于有经验的用户 sudo yum install -y centos-release-scl sudo yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++ scl enable devtoolset-9 bash ``` --- ### 四、验证修复 ```bash # 检查版本 docker-compose --version # 预期输出(示例) docker-compose version 2.1.1, build xxxxxxx ``` --- ### 五、注意事项 1. 优先使用方案2的容器化方案,避免依赖冲突 2. 慎用glibc升级操作,可能导致系统不稳定 3. 若使用Docker官方源安装,建议配置仓库: ```bash sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值