Skip to content

Docker / Podman

🐳 轻量容器虚拟化 · 秒级开通 · 镜像复用 · 跨平台(Linux / Windows / macOS)

✨ 平台特性

特性描述
🪶 超轻量单容器常驻内存最低 10MB,开通速度秒级
🐧 镜像生态拉取 Docker Hub / 私有 Registry 镜像即可使用
🧩 多平台Linux(原生)、Windows(Docker Desktop / WSL2)、macOS
🔁 OpenIDCS 能力创建 / 启停 / 重启 / 删除 · 镜像管理 · WebSSH · 端口映射 · 日志 · 资源监控
🛠 Podman 兼容完全兼容 Docker CLI,无 daemon、无 root,适合企业合规场景
📦 Compose 支持支持在 OpenIDCS 中通过 docker-compose.yml 一键部署应用栈
🌐 网络自动桥接 / 自定义网络 / 端口转发 / IPv6

🧱 架构示意

OpenIDCS MainServer
      │  HTTPS + Token

OpenIDCS HostAgent(运行在宿主机)
      │  dockerd.sock / podman.sock

  Docker / Podman Engine

      ├─> Container A(Ubuntu)
      ├─> Container B(Nginx)
      └─> Container C(MySQL)

📋 前置要求

要求
操作系统Ubuntu 20.04+ / Debian 11+ / CentOS 7+ / Windows 10/11 / Windows Server 2019+
架构x86_64 / ARM64
内核Linux ≥ 4.0,建议 ≥ 5.4
Docker20.10+(Podman ≥ 4.0)
磁盘≥ 20GB(存镜像与容器层)

🚀 部署教程

步骤 1 · 在宿主机安装 Docker

Linux (Ubuntu/Debian)

bash
curl -fsSL https://get.docker.com | sudo bash
sudo systemctl enable --now docker
docker version

CentOS / Rocky

bash
sudo dnf install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker

Podman(替代方案)

bash
sudo dnf install -y podman podman-docker
sudo systemctl enable --now podman.socket

Windows:下载 Docker Desktop 安装即可,建议启用 WSL2 后端。

步骤 2 · 安装 OpenIDCS HostAgent

bash
curl -fsSL https://raw.githubusercontent.com/OpenIDCSTeam/OpenIDCS-Client/main/install-agent.sh \
  | sudo bash -s -- \
    --server https://openidcs.example.com \
    --token <Agent Token> \
    --driver docker

TIP

--driver docker 会自动将 HostAgent 加入 docker 用户组,使其能访问 /var/run/docker.sock

步骤 3 · 在 OpenIDCS 中添加平台

  1. 登录 OpenIDCS 管理后台 → 主机管理 → 添加主机
  2. 填写:
    • 平台类型:Docker / Podman
    • 名称docker-node-01
    • 连接方式:本地 Socket / TCP / SSH
    • Socket 路径(本地):/var/run/docker.sock
    • TCP 地址(远程):tcp://192.168.1.10:2375(⚠️ 建议配合 TLS)
  3. 点击 测试连接 → 绿勾后保存。

步骤 4 · 创建第一个容器

  1. 进入 虚拟机 → 创建
  2. 选择 平台:Docker主机:docker-node-01
  3. 配置:
字段示例
镜像ubuntu:22.04
名称test-vm-001
CPU1 核
内存512 MB
磁盘10 GB
端口映射22:2280:8080
启动命令/sbin/init(systemd 容器)/ 为空(默认 CMD)
初始密码ChangeMe!
  1. 点击 创建,后台异步拉镜像并启动。
  2. 开机后可:WebSSH、查看日志、动态扩容、备份。

🔧 常用操作

拉取自定义镜像

bash
# 在 HostAgent 宿主机预拉
docker pull nginx:1.25
docker pull mysql:8.0

OpenIDCS 中创建容器时即可直接选择该镜像。

使用 docker-compose 模板

OpenIDCS 支持保存 Compose 模板(模板中心 → Compose),用户可一键部署:

yaml
services:
  nginx:
    image: nginx:1.25
    ports:
      - "80:80"
  app:
    image: myapp:latest
    environment:
      DB_HOST: mysql
  mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: ChangeMe!

systemd 容器(推荐 VPS 售卖)

使用 jrei/systemd-ubuntujrei/systemd-debian 等镜像,可提供"类 VM"体验:

镜像:jrei/systemd-ubuntu:22.04
启动命令:/sbin/init
挂载:/sys/fs/cgroup:/sys/fs/cgroup:ro
特权:--privileged

私有 Registry

系统设置 → 镜像仓库 添加:

地址:registry.example.com
用户:admin
密码:••••••

🛡 安全建议

  • ✅ 默认禁用远程 TCP 无认证 Socket,建议仅本地或通过 TLS 暴露。
  • ✅ 对售卖的容器启用 CPU / 内存 / PID / 磁盘 IO cgroup 限制。
  • ✅ 使用 --cap-drop ALL + 按需授权 Capability。
  • ✅ 启用用户命名空间(userns-remap)隔离 root。
  • ✅ 定期清理未使用的镜像:docker system prune -af

🧯 常见问题

HostAgent 无法访问 Docker?

确认 HostAgent 进程用户在 docker 组:

bash
sudo usermod -aG docker openidcs-agent
sudo systemctl restart openidcs-agent
容器创建后无法 WebSSH?

镜像需要有 sshd 或支持 docker exec。对 Alpine 镜像需安装 openssh

bash
apk add --no-cache openssh
想用 Podman 但 Socket 路径不同?

Podman Socket 通常是 /run/podman/podman.sock,在 OpenIDCS 添加主机时填写即可。


👉 下一步:创建容器模板 · 网络与端口转发 · FSPlugins 售卖容器

基于 AGPLv3 协议发布