CentOS 安装 docker 以及 docker-compose

在CentOS系统上面安装docker引擎:

系统:CentOS 

docker官网:Install Docker Engine on CentOS | Docker Documentation

##卸载之前的docker(有则卸载)

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

##安装yum依赖

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

##阿里云镜像源:

#sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

##清华大学镜像源:

#sudo yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

##列出docker存储库中可用的版

yum list docker-ce --showduplicates | sort -r

##安装指定版本

##通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1。

#sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

##默认安装docker  默认 latest 版本

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

##centos8中如果出现 错误:
 问题 1: 安装的软件包的问题 podman-1.4.2-5.module_el8.1.0+237+63e26edc.x86_64
  - 软件包 podman-1.4.2-5.module_el8.1.0+237+63e26edc.x86_64 需要 runc,但没有提供者可以被安装
  - 软件包 podman-3.3.1-9.module_el8.5.0+988+b1f0b741.x86_64 需要 runc >= 1.0.0-57,但没有提供者可以被安装
  - 软件包 containerd.io-1.6.21-3.1.el8.x86_64 与 runc(由 runc-1.0.0-60.rc8.module_el8.1.0+237+63e26edc.x86_64 提供)冲突

说明与podman包冲突了 

执行命令:

yum erase podman buildah

#即可解决

##启动docker

sudo systemctl start docker

##查看docker运行状态

systemctl status docker

##停止docker

systemctl stop docker

##配置docker开机自启动

systemctl enable docker

##查看docker版本号

docker --version


安装 docker-compose

docker官网:docker官网安装

##官方安装镜像

curl -SL https://github.com/docker/compose/releases/download/v2.19.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

##要安装其他版本的 Compose,请替换 v2.19.0  目前最新版本:v2.19.0

##可通过GitHub查看版本列表:https://github.com/docker/compose/releases

##官方镜像可能下载不动,使用下面的高速安装 Docker Compose  v2.4.1

curl -L https://get.daocloud.io/docker/compose/releases/download/v2.19.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

##将可执行权限应用于二进制文件
sudo chmod +x /usr/local/bin/docker-compose

##创建软连接

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

##查看版本号

docker-compose version

##docker-compose文件内容配置可参考:Docker Compose | 菜鸟教程

如果报错:

/usr/local/bin/docker-compose:行1: html: 没有那个文件或目录
/usr/local/bin/docker-compose:行2: 未预期的符号 `<' 附近有语法错误
'usr/local/bin/docker-compose:行2: `<head><title>502 Bad Gateway</title></head>
说明docker-compose文件不正确

打开官网:docker-compose版本列表

或者直接打开:下载
如果下载不了可使用作者分享的链接:百度云盘提取码: nc6k

找到对应版本点击下载

然后上传到服务器:  /usr/local/bin/  目录

重命名文件:

mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose

授予权限:

chmod +x /usr/local/bin/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 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼大虾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值