oneclickvirt
docker
Shell

docker相关的各种一键(Various one-click related to docker)通过Docker批量或单独开设NAT服务器(Bulk or individual NAT server provisioning via Docker)

Last updated Jul 2, 2026
75
Stars
16
Forks
0
Issues
0
Stars/day
Attention Score
59
Language breakdown
Shell 99.2%
Dockerfile 0.8%
Files click to expand
README

docker

Hits

更新

2026.06.04

  • 统一无交互执行方式为 export noninteractive=true
  • 补充 CI 约束、环境变量、架构说明和安全忽略规则
  • 修复容器创建、卸载重装、镜像回退和 Guacamole 数据库初始化边界问题
  • 修复 Windows 辅助启动失败误报成功、Release 分片上传凭据硬编码和关键远程脚本下载校验等边界
更新日志

说明文档

国内(China):

https://virt.spiritlhl.net/

国际(Global):

https://www.spiritlhl.net/en/

说明文档中 Docker 分区内容

说明

  • 支持系统:Ubuntu、Debian、Alpine、AlmaLinux 9、RockyLinux 9、OpenEuler 22.03
  • 系统输入支持带版本号写法,例如 debian11debian/11ubuntu20almalinux9rockylinux9openeuler22.03;脚本会归一到当前维护的镜像族
  • 支持架构:amd64、arm64
  • 镜像同时发布到 GHCR(ghcr.io/oneclickvirt/docker)和 GitHub Releases(tar.gz 离线包)
  • onedocker.sh 优先从 GHCR 拉取镜像,失败后自动回退至 Releases 离线包,最后回退到 Docker Hub

快速开始 / Quick Start

  • 使用 root 用户登录一台支持 Docker 的 Linux 主机。
  • 执行 export noninteractive=true,让脚本统一走无需交互模式。
  • 运行 Docker 环境安装脚本。
  • 运行 onedocker.shcreate_docker.sh 创建容器。
  • 用脚本输出的 SSH 端口或 Web 地址访问服务。

架构

flowchart LR
    operator["Operator / 管理员"] --> installer["scripts/dockerinstall.sh"]
    installer --> engine["Docker Engine"]
    engine --> linux["Linux system containers"]
    engine --> desktop["Browser / Android / Windows helpers"]
    onedocker["scripts/onedocker.sh"] --> sources["GHCR / Releases / Docker Hub"]
    sources --> engine
    workflow["GitHub Actions"] --> ghcr["GHCR multi-arch images"]
    workflow --> releases["GitHub release tar.gz"]
    ghcr --> sources
    releases --> sources

安装 Docker 环境

export noninteractive=true
bash <(wget -qO- https://raw.githubusercontent.com/oneclickvirt/docker/main/scripts/dockerinstall.sh)

如需交互式安装,不设置 noninteractive 即可。

常用环境变量

| 变量 | 默认值 | 说明 | |------|--------|------| | noninteractive | 空 | 设为 true 时跳过脚本交互提示,统一使用默认值或已传入变量 | | WITHOUTCDN | false | 设为 TRUE 时禁用 CDN 加速地址探测 | | CN | 自动检测 | true 强制使用中国镜像源,false 跳过中国 IP 检测 | | IPV6MAXIMUMSUBSET | n | 是否在 SLAAC 场景使用 IPv6 最大子网范围 | | NEEDDISKLIMIT | n | 是否启用 btrfs 容器磁盘限制 | | DOCKERINSTALLPATH | /var/lib/docker | Docker 数据目录 | | DOCKERPOOLSIZE | 20 | btrfs 存储池大小,单位 GB | | DOCKERLOOPFILE | /opt/docker-pool.img | btrfs loop 文件路径 | | DOCKERCREATECOUNT | 1 | 批量创建 Linux 容器数量 | | DOCKERMEMORYMB | 512 | 批量创建时每个容器内存,单位 MB | | DOCKER_CPU | 1 | 批量创建时每个容器 CPU 核数 | | DOCKERDISKGB | 0 | 批量创建时每个容器磁盘限制,0 表示不限 | | DOCKER_SYSTEM | debian | 批量创建默认系统,支持 debian11debian/11ubuntu20 等带版本号写法并归一到当前维护的镜像族 | | DOCKERINDEPENDENTIPV6 | n | 批量创建时是否附加独立 IPv6 | | ANDROIDRESETDATA | 空 | 设为 true 时重建 Android 容器前清空 /root/android/data,默认保留并复用旧数据 | | ANDROIDWEBUSER / ANDROIDWEBPASSWORD | onea / oneclick | Android Web 认证默认用户名和密码 | | CHROMIUMUSER / CHROMIUMPASSWORD | oneclick / oneclick | Chromium Web 登录信息 | | CHROMIUMHTTPPORT / CHROMIUMHTTPSPORT | 3004 / 3005 | Chromium Web 端口 | | CHROMIUMSHMGB | 2 | Chromium 共享内存大小,单位 GB | | FIREFOX_PASSWORD | oneclick | Firefox Web/VNC 默认密码 | | FIREFOXWEBPORT / FIREFOXVNCPORT | 3003 / 空 | Firefox Web/VNC 端口 | | FIREFOXSHMGB | 2 | Firefox 共享内存大小,单位 GB | | WEBTOPUSER / WEBTOPPASSWORD | onew / oneclick | Webtop 登录信息 | | WEBTOPHTTPPORT / WEBTOPHTTPSPORT | 3004 / 3005 | Webtop Web 端口 | | WEBTOPSHMGB | 2 | Webtop 共享内存大小,单位 GB | | GUACAMOLEDBNAME / GUACAMOLEDBUSER | guacdb / guacadmin | Guacamole MySQL 数据库名和应用用户 | | GUACAMOLEMYSQLROOTPASSWORD / GUACAMOLEMYSQL_PASSWORD | password / password | Guacamole MySQL root 密码和应用用户密码 | | GUACAMOLEPORT / GUACAMOLENETWORK | 80 / guacamole_net | Guacamole Web 端口和 Docker 内部网络 | | GITHUBTOKEN / TOKEN | 空 | extrascripts/splitandupload.sh 上传 Release 分片时使用的 GitHub Token |

安全提示

  • 默认密码只适合快速验证;生产或公网环境请通过参数或环境变量显式设置高强度密码。
  • .gitignore 已排除 .env、数据库、密码/密钥、日志、截图和镜像归档产物,避免把敏感数据或构建产物提交到仓库。
  • 卸载脚本会清理容器、镜像、网络、systemd 服务和 Docker 二进制文件,交互模式下必须输入 yes,无交互模式请先确认目标主机可被完整清理。

开设单个容器

# 用法: ./onedocker.sh <name> <cpu> <memorymb> <password> <sshport> <startport> <endport> [independentipv6:y/n] [system] [disk_gb]
bash onedocker.sh dc1 1 512 mypasswd 25001 35001 35025 n debian 0

批量开设容器

bash create_docker.sh

查看与管理容器

# 查看所有容器
docker ps -a

查看日志文件

cat /root/dclog

在容器内执行命令

docker exec <name> bash -lc 'systemctl status ssh || true'

卸载(完整清理)

一键卸载 Docker 全套环境,包括所有容器、镜像、网络、systemd 服务、二进制文件:

export noninteractive=true
bash <(wget -qO- https://raw.githubusercontent.com/oneclickvirt/docker/main/dockeruninstall.sh)

未设置 noninteractive=true 时,脚本会在执行前要求输入 yes 确认,操作不可逆。

复测流程:先执行卸载,再执行安装,即可从零验证整个安装流程。

镜像说明

本仓库自编镜像通过 GitHub Actions 构建,同时发布到 GHCR 和 GitHub Releases:

| 系统 | GHCR 镜像(多架构)| amd64 tar | arm64 tar | |------|---------------------|-----------|-----------| | Ubuntu | ghcr.io/oneclickvirt/docker:ubuntu | spiritlhlubuntuamd64.tar.gz | spiritlhlubuntuarm64.tar.gz | | Debian | ghcr.io/oneclickvirt/docker:debian | spiritlhldebianamd64.tar.gz | spiritlhldebianarm64.tar.gz | | Alpine | ghcr.io/oneclickvirt/docker:alpine | spiritlhlalpineamd64.tar.gz | spiritlhlalpinearm64.tar.gz | | AlmaLinux 9 | ghcr.io/oneclickvirt/docker:almalinux | spiritlhlalmalinuxamd64.tar.gz | spiritlhlalmalinuxarm64.tar.gz | | RockyLinux 9 | ghcr.io/oneclickvirt/docker:rockylinux | spiritlhlrockylinuxamd64.tar.gz | spiritlhlrockylinuxarm64.tar.gz | | OpenEuler 22.03 | ghcr.io/oneclickvirt/docker:openeuler | spiritlhlopeneuleramd64.tar.gz | spiritlhlopeneulerarm64.tar.gz |

手动拉取示例:

docker pull ghcr.io/oneclickvirt/docker:debian

网络说明

  • 默认使用主机 NAT 网络,通过端口映射暴露 SSH 及自定义端口
  • 若宿主机配置了公网 IPv6 并检测到 ndpresponder 容器,可为容器分配独立 IPv6 地址

致谢

感谢 LinuxMirrors 提供的国内镜像安装以及国内包管理源镜像替换脚本

Stargazers over time

Stargazers over time

🔗 More in this category

© 2026 GitRepoTrend · oneclickvirt/docker · Updated daily from GitHub