You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RHEL7.9下Docker与Docker-Compose旧版本运行问题问询

旧版Docker/docker-compose在RHEL7.9上的问题与解决办法

环境背景

我在运行RHEL 7.9的服务器上使用旧版本的容器工具:

  • Docker版本:1.13.1, build 0be3e21/1.13.1
  • docker-compose版本:1.18.0, build 8dd22a9

使用的docker-compose.yml(仅展示核心配置):

version: '3'
services:
  fc-1:
    image: fc
    cpuset: '0,2,4,6,8,10'
    container_name: 'fc-1'
    restart: 'unless-stopped'
    network_mode: 'host'
    volumes:
      - /etc/fc:/etc/fc
    environment:
      ...
  fc-2:
    image: fc
    cpuset: '1,3,5,7,9,11'
    container_name: 'fc-2'
    restart: 'unless-stopped'
    network_mode: 'host'
    volumes:
      - /etc/fc:/etc/fc
    environment:
      ...

遇到的问题

问题1:docker-compose up报错不支持cpuset

执行docker-compose up时触发配置校验错误:

ERROR: The Compose file './docker-compose.yml' is invalid because:
Unsupported config option for services.fc-1: 'cpuset'
Unsupported config option for services.fc-2: 'cpuset'

问题2:注释cpuset后仍报错线程创建失败

注释掉cpuset相关配置后,运行容器时出现运行时错误:

runtime/cgo: pthread_create failed: Operation not permitted
SIGABRT: abort

问题分析与解决办法

1. 版本兼容性问题确认

你遇到的两个问题均与Docker、docker-compose版本过旧直接相关:

  • cpuset字段问题:早期docker-compose(如1.18.0)对Compose文件3.x版本的支持不完善,cpuset是Compose 2.x版本原生支持的配置项。
  • 线程创建失败问题:旧版Docker默认的seccomp安全配置限制了线程创建操作,导致pthread_create调用被拒绝。

2. 新版本Docker在RHEL7上的支持情况

Docker官方支持在RHEL 7上运行较新版本的Docker(如Docker Engine - Community 20.10系列),只需按照官方指引配置对应yum源后即可完成安装升级。

3. 具体修复方案

解决cpuset字段不支持问题

将docker-compose.yml中的Compose版本从version: '3'改为version: '2',即可正常使用cpuset配置,修改后示例:

version: '2'
services:
  fc-1:
    image: fc
    cpuset: '0,2,4,6,8,10'
    # 其余配置保持不变

解决线程创建失败问题

在docker-compose.yml中通过security_opt字段添加seccomp配置,示例:

services:
  fc-1:
    image: fc
    security_opt:
      - seccomp=unconfined
    # 其余配置保持不变

内容的提问来源于stack exchange,提问作者Rayne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 18:40:06