centos7 二进制安装docker和docker-compose(amd64,arch64)

本文档提供了一份详细的Docker二进制安装步骤指南,包括系统优化、Docker及Docker Compose的安装配置等内容,并针对不同架构提供了下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、优化系统

modprobe br_netfilter
cat >> /etc/sysctl.conf << EOF 
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl -p

二、二进制安装docker

install_docker.sh

#!/bin/bash
#docker版本
#version=19.03.9
version=20.10.11
#docker安装路径
install_path=/opt

#下载docker二进制安装文件
if [ ! -f "docker-${version}.tgz" ]; then

#wget https://download.docker.com/linux/static/stable/$(uname -i)/docker-${version}.tgz
curl https://download.docker.com/linux/static/stable/$(uname -i)/docker-${version}.tgz -o docker-${version}.tgz
fi

#解压到指定的安装目录
tar zxvf docker-${version}.tgz -C ${install_path}

#把二进制文件link到/usr/bin下
ln -s  ${install_path}/docker/* /usr/bin/

#创建docker.service自启动脚本
cat > /etc/systemd/system/docker.service << EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target
EOF

#创建docker配置文件
if [ ! -d "/etc/docker" ]; then
mkdir /etc/docker
fi

cat > /etc/docker/daemon.json <<EOF
{
 "bip":"172.19.0.1/16",
  "registry-mirrors": ["https://dockerhub.azk8s.cn", "https://docker.mirrors.ustc.edu.cn"], 
  "insecure-registries": ["127.0.0.1/8"],
  "max-concurrent-downloads": 10,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
    },
  "data-root": "/var/lib/docker"
}
EOF

#开机自启动
systemctl daemon-reload
systemctl enable docker
systemctl start docker

#docker_compose
docker_composer_version=v2.1.1

curl -L "https://github.com/docker/compose/releases/download/$docker_composer_version/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose

#验证
docker-compose version

arm64版本1.22下载地址

wget  https://github.com/ubiquiti/docker-compose-aarch64/releases/download/1.22.0/docker-compose-Linux-aarch64

arm64版本1.23下载地址
https://gitee.com/hknarutofk/kubeasz-arm64/raw/master/etc/ansible/bin/docker-compose

arm64版本2.1.1下载地址

wget  https://github.com/docker/compose/releases/download/v2.1.1/docker-compose-linux-aarch64
<think>嗯,用户之前问了如何在Windows Server 2016上安装Dify,现在遇到了在CentOS7上运行`docker-compose up -d`时出现Segmentation fault的问题。我需要先理解Segmentation fault的可能原因,然后根据CentOS7的环境给出解决方案。 首先,Segmentation fault通常是由于内存访问错误引起的。在DockerDocker Compose的上下文中,可能的原因有几个。首先,CentOS7的内核版本可能太旧,不支持Docker的一些新功能。Docker需要较新的内核,特别是启用某些功能时。其次,用户可能安装Docker Compose版本与系统架构不兼容,比如使用了错误的二进制文件。此外,内存不足或硬件问题也可能导致段错误,但相对少见。 接下来,我需要考虑CentOS7的常见问题。CentOS7默认使用较旧的内核(3.10.x),而Docker推荐至少4.x以上的内核。用户可能需要升级内核或者启用更新的内核版本。另外,Docker Compose安装方式是否正确?用户是否从官方源安装了正确的版本?有时候,使用pip安装Docker Compose可能会有问题,特别是依赖项冲突的时候。 然后,用户可能没有正确安装Docker,或者Docker服务没有运行。需要检查Docker安装步骤,确保仓库配置正确,安装的是官方版本。此外,SELinux防火墙设置有时会导致权限问题,虽然这通常不会直接导致段错误,但也不能完全排除。 另外,用户可能在运行docker-compose命令时权限不足,导致某些操作失败。需要提醒用户使用sudo或者将用户加入docker组。不过,Segmentation fault更可能出现在执行文件本身的问题,比如二进制文件损坏或不兼容。 可能的解决步骤包括:首先检查系统内核版本,升级内核到较新版本;确保Docker正确安装并运行;重新安装Docker Compose,尤其是确认下载的版本与系统架构兼容;检查内存硬件问题;以及调整SELinux设置或禁用SELinux测试。 需要详细给出每一步的具体命令,比如如何升级内核,如何正确安装DockerDocker Compose,如何检查内存等。同时,要考虑到用户可能对Linux系统管理不太熟悉,所以命令要准确,步骤要清晰。 最后,总结常见原因,并提供检查建议,比如查看日志、使用strace调试等高级方法,帮助用户进一步诊断问题。</think>### 一、Segmentation Fault 常见原因分析(CentOS7 环境) #### 1. 系统兼容性问题 - **内核版本过低**:CentOS7 默认内核版本为 `3.10.x`,Docker 依赖较新的内核特性 - **架构不匹配**:错误安装了与 CPU 架构(x86_64/arm)不兼容的 Docker Compose 版本 #### 2. 软件依赖冲突 - **glibc 版本过低**:Docker Compose 依赖较新的 C 标准库(如 `glibc 2.18+`) - **Python 兼容性问题**:通过 `pip` 安装Docker Compose 可能存在依赖冲突 #### 3. 硬件限制 - **内存不足**:容器启动时内存分配失败(常见于小内存实例) - **文件系统损坏**:`ext4/xfs` 文件系统异常导致 I/O 错误 --- ### 二、分步解决方案 #### ▶ 步骤 1:验证系统环境 ```bash # 检查内核版本(建议 ≥ 3.10.0-1160) uname -r # 检查 glibc 版本(需要 ≥ 2.17) ldd --version | head -n1 # 检查 CPU 架构 arch ``` #### ▶ 步骤 2:修复依赖问题 ```bash # 升级基础库 sudo yum update -y glibc kernel # 安装缺失依赖 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 彻底卸载旧版本 Docker sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine ``` #### ▶ 步骤 3:安装 Docker 官方版本 ```bash # 添加 Docker 官方仓库 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 安装 Docker CE sudo yum install -y docker-ce docker-ce-cli containerd.io # 启动服务并设置开机自启 sudo systemctl start docker sudo systemctl enable docker ``` #### ▶ 步骤 4:安装兼容版 Docker Compose ```bash # 卸载旧版本 sudo rm -f /usr/local/bin/docker-compose # 下载 v2.20.0 稳定版(兼容 CentOS7) sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 赋权并验证 sudo chmod +x /usr/local/bin/docker-compose docker-compose --version # 预期输出:Docker Compose version v2.20.0 ``` #### ▶ 步骤 5:调试运行(关键步骤) ```bash # 启用调试模式 export COMPOSE_HTTP_TIMEOUT=600 export DOCKER_CLIENT_TIMEOUT=600 # 带日志启动(定位具体出错点) docker-compose --verbose up -d 2>&1 | tee compose.log # 检查关键错误(重点关注以下关键词) grep -Ei 'segmentation fault|SIGSEGV|memory error' compose.log ``` --- ### 三、高级故障排查 #### 1. 内核级诊断 ```bash # 安装 crash 调试工具 sudo yum install -y crash # 分析内核崩溃日志 sudo cat /var/log/messages | grep -i segfault sud
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值