一键安装docker

bash <(curl -sL kejilion.sh) docker install

使用方法①——替换拉取镜像地址

原拉取镜像命令

docker pull library/alpine:latest

改为加速拉取镜像命令

docker pull docker.anye.in/library/alpine:latest

使用方法②——配置镜像加速器(openwrt无效 需要在dockerman添加镜像)

创建或修改 /etc/docker/daemon.json 配置文件

DOCKER_MIRROR=https://hub.1panel.dev
tee /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["$DOCKER_MIRROR"]
}
EOF

# 重启 Docker 服务

/etc/init.d/dockerd restart

Docker加速镜像大全(由Anye提供)

https://status.anye.xyz/status/docker

以某关键字匹配 删掉某些镜像(hugo举例)

docker images | grep 'hugo' | awk '{print $3}' | xargs docker rmi -f

获取正在运行的Docker容器的docker run命令以我的halo博客为例

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike halo

分析一个镜像,以wrk为例

docker images williamyeh/wrk

docker history williamyeh/wrk

docker create --name wrk_temp williamyeh/wrk

cd /tmp/wrk/
docker export wrk_temp > wrk-fs.tar
ls

docker rm wrk_temp

mkdir -p wrk-fs
tar -x -f wrk-fs.tar -C wrk-fs
ls

du -s wrk-fs/* 2>/dev/null | sort -n

find wrk-fs -type f -name "*wrk*"

file wrk-fs/usr/local/bin/wrk 2>/dev/null || echo "使用ls -l查看文件信息"

ls -l wrk-fs/usr/local/bin/wrk


# 获取镜像的构建时间线
docker image history --no-trunc williamyeh/wrk:latest

Nginx

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器

https://nginx.org/en/

把配置文件输出到物理机

NGINX_PATH=/data/nginx
mkdir -p $NGINX_PATH/log

docker run --rm \
--network=none \
--entrypoint=cat nginx /etc/nginx/nginx.conf > $NGINX_PATH/nginx.conf

把主要文件输出到物理机

mkdir -p $NGINX_PATH/conf.d
docker run --rm \
--network=none \
--entrypoint=cat nginx /etc/nginx/conf.d/default.conf > $NGINX_PATH/conf.d/default.conf

把文件拷贝到主机

# 创建一个临时容器(不启动)
docker create --name temp-nginx-container nginx:latest
# 将容器conf.d文件夹下内容复制到宿主机
docker cp temp-nginx-container:/etc/nginx/conf.d $NGINX_PATH/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp temp-nginx-container:/usr/share/nginx/html $NGINX_PATH
# 文件复制完成后,这个临时容器就没用了,可以删除它。
docker rm temp-nginx-container

启动Nginx(默认端口80)

export NGINX_PORT=93  # 设置环境变量

docker run -d \
--name nginx \
-p ${NGINX_PORT}:80 \
nginx

全映射的Nginx

export NGINX_PORT=93  # 设置环境变量

docker run -d  \
--name nginx \
-p ${NGINX_PORT}:80 \
-v $NGINX_PATH/nginx.conf:/etc/nginx/nginx.conf \
-v $NGINX_PATH/conf.d/default.conf:/etc/nginx/conf.d/default.conf \
-v $NGINX_PATH/log:/var/log/nginx \
-v $NGINX_PATH/html:/usr/share/nginx/html \
nginx:latest

带有ECH模块的Nginx(仅支持amd64 x86)

生成 ECH key

openssl genpkey -out /path/to/your/docker/mount/directory/ech.key -algorithm X25519

准备 nginx.conf

vim /path/to/your/docker/mount/directory/nginx.conf

user root;
events {
    worker_connections  1024;
}

http {
    client_max_body_size 200m;

    server {
        # "reuseport" and "ipv6only=off" only need to configure once
        listen [::]:54321 quic reuseport ipv6only=off;
        listen [::]:54321 ssl ipv6only=off;
        http2 on;
        http3 on;
        http3_hq on;

        server_name a.example.com;
        proxy_buffering off;

        # ech key, only need to configure once
        ssl_ech a.example.com 1 key=/etc/nginx/ech.key;

        ssl_certificate /etc/nginx/a.example.com.pem;
        ssl_certificate_key /etc/nginx/a.example.com.key;

        ssl_protocols TLSv1.3;
        ssl_prefer_server_ciphers on;

        ssl_session_timeout 1d;
        ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
        ssl_session_tickets off;

        add_header Alt-Svc 'h3=":54321";h3-29=":54321"';   # Advertise that HTTP/3 is available

        # HSTS
        add_header Strict-Transport-Security "max-age=31536000" always;

        location / {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://calibre:8083;
        }

        location /.well-known/origin-svcb {
            add_header Content-Type application/json;
            return 200 '{"enable":$ssl_ech,"endpoints":[{"ech":"$ssl_ech_config"}]}';
        }
    }

    server {
        listen [::]:54321 quic;
        listen [::]:54321 ssl;
        http2 on;
        http3 on;
        http3_hq on;

        server_name b.example.com;
        proxy_buffering off;

        ssl_certificate /etc/nginx/b.example.com.pem;
        ssl_certificate_key /etc/nginx/b.example.com.key;

        ssl_protocols TLSv1.3;
        ssl_prefer_server_ciphers on;

        ssl_session_timeout 1d;
        ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
        ssl_session_tickets off;

        add_header Alt-Svc 'h3=":54321";h3-29=":54321"';   # Advertise that HTTP/3 is available

        # HSTS
        add_header Strict-Transport-Security "max-age=31536000" always;

        location / {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://calibre2:8083;
        }

        location /.well-known/origin-svcb {
            add_header Content-Type application/json;
            return 200 '{"enable":$ssl_ech,"endpoints":[{"ech":"$ssl_ech_config"}]}';
        }
    }

}

创建带ECH的nginx的Docker容器

NGINX_ECH_PATH = /data/nginx-ech
mkdir -p $NGINX_ECH_PATH

docker run --name nginx -d \
-p 54321:54321 \
-p 54321:54321/udp \
--restart unless-stopped \
-v $NGINX_ECH_PATH:/etc/nginx \
--log-opt max-size=2m \
imhy123/nginx-ech:1.25.4-beta.2

Nginx最小化版本(根据-e HTTP_PORT传递需要的端口 容器内部默认80)

docker run -d \
--name nginx \
--network host \
-e HTTP_PORT=93 \
bailangvvking/nginx

重启

docker exec nginx /etc/nginx/sbin/nginx -s reload

科技Lion的nginx 带Waf Br压缩 zstd压缩

NGINX_PATH=/data/nginx-waf
mkdir -p ${NGINX_PATH}

# 下载配置文件
mkdir -p ${NGINX_PATH} cd ${NGINX_PATH} \
&& mkdir -p ${NGINX_PATH}/html ${NGINX_PATH}/certs ${NGINX_PATH}/conf.d ${NGINX_PATH}/log/nginx
wget -O ${NGINX_PATH}/nginx.conf https://gh.kejilion.pro/raw.githubusercontent.com/kejilion/nginx/main/nginx10.conf
wget -O ${NGINX_PATH}/conf.d/default.conf https://gh.kejilion.pro/raw.githubusercontent.com/kejilion/nginx/main/default10.conf

wget -O ${NGINX_PATH}/html/index.html https://gh.kejilion.pro/github.com/nginx/nginx/raw/refs/heads/master/docs/html/index.html
wget -O ${NGINX_PATH}/html/50x.html https://gh.kejilion.pro/github.com/nginx/nginx/raw/refs/heads/master/docs/html/50x.html

# 开启Waf功能
sed -i 's|# load_module /etc/nginx/modules/ngx_http_modsecurity_module.so;|load_module /etc/nginx/modules/ngx_http_modsecurity_module.so;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1
sed -i 's|^\(\s*\)# modsecurity on;|\1modsecurity on;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1
sed -i 's|^\(\s*\)# modsecurity_rules_file /etc/nginx/modsec/modsecurity.conf;|\1modsecurity_rules_file /etc/nginx/modsec/modsecurity.conf;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1

# 开启 Brotli:去掉注释
sed -i 's|# load_module /etc/nginx/modules/ngx_http_brotli_filter_module.so;|load_module /etc/nginx/modules/ngx_http_brotli_filter_module.so;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1
sed -i 's|# load_module /etc/nginx/modules/ngx_http_brotli_static_module.so;|load_module /etc/nginx/modules/ngx_http_brotli_static_module.so;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1

sed -i 's|^\(\s*\)# brotli on;|\1brotli on;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1
sed -i 's|^\(\s*\)# brotli_static on;|\1brotli_static on;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1
sed -i 's|^\(\s*\)# brotli_comp_level \(.*\);|\1brotli_comp_level \2;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1
sed -i 's|^\(\s*\)# brotli_buffers \(.*\);|\1brotli_buffers \2;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1
sed -i 's|^\(\s*\)# brotli_min_length \(.*\);|\1brotli_min_length \2;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1
sed -i 's|^\(\s*\)# brotli_window \(.*\);|\1brotli_window \2;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1
sed -i 's|^\(\s*\)# brotli_types \(.*\);|\1brotli_types \2;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1
sed -i '/brotli_types/,+6 s/^\(\s*\)#\s*/\1/' ${NGINX_PATH}/nginx.conf

# 开启 Zstd:去掉注释
sed -i 's|# load_module /etc/nginx/modules/ngx_http_zstd_filter_module.so;|load_module /etc/nginx/modules/ngx_http_zstd_filter_module.so;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1
sed -i 's|# load_module /etc/nginx/modules/ngx_http_zstd_static_module.so;|load_module /etc/nginx/modules/ngx_http_zstd_static_module.so;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1

sed -i 's|^\(\s*\)# zstd on;|\1zstd on;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1
sed -i 's|^\(\s*\)# zstd_static on;|\1zstd_static on;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1
sed -i 's|^\(\s*\)# zstd_comp_level \(.*\);|\1zstd_comp_level \2;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1
sed -i 's|^\(\s*\)# zstd_buffers \(.*\);|\1zstd_buffers \2;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1
sed -i 's|^\(\s*\)# zstd_min_length \(.*\);|\1zstd_min_length \2;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1
sed -i 's|^\(\s*\)# zstd_types \(.*\);|\1zstd_types \2;|' ${NGINX_PATH}/nginx.conf > /dev/null 2>&1
sed -i '/zstd_types/,+6 s/^\(\s*\)#\s*/\1/' ${NGINX_PATH}/nginx.conf

# 下载自签假证书
curl -o ${NGINX_PATH}/certs/default_server.crt https://gitee.com/white-wolf-vvvk/DK8sDDosFirewall/raw/main/cert.crt
curl -o ${NGINX_PATH}/certs/default_server.key https://gitee.com/white-wolf-vvvk/DK8sDDosFirewall/raw/main/cert.key

# 启动 Nginx 容器 注意80 443 如果不想占用的话就改下端口
docker run -d \
--name nginx-waf \
--restart always \
--network host \
-v "${NGINX_PATH}/nginx.conf:/etc/nginx/nginx.conf" \
-v "${NGINX_PATH}/conf.d:/etc/nginx/conf.d" \
-v "${NGINX_PATH}/certs:/etc/nginx/certs" \
-v "${NGINX_PATH}/html:/var/www/html" \
-v "${NGINX_PATH}/log/nginx:/var/log/nginx" \
--tmpfs /var/cache/nginx:rw,noexec,nosuid,size=2048m \
kjlion/nginx:alpine

Caddy(占用端口根据配置定义)

Caddy是一款基于Go语言编写的强大且可扩展的平台,可以给你的站点、服务和应用程序提供服务。

https://caddy2.dengxiaolong.com/docs/
CADDY_PATH=/data/caddy

mkdir -p $CADDY_PATH/site
mkdir -p $CADDY_PATH/caddy_data
mkdir -p $CADDY_PATH/caddy_config

export CADDY_PORT=80  # 设置环境变量

cat <<EOF > $CADDY_PATH/Caddyfile
: {
    root * /usr/share/caddy
    file_server
}
EOF

echo '<h1>Hello from Caddy!</h1>' > $CADDY_PATH/site/index.html

docker run -d --name caddy \
-p ${CADDY_PORT}:80 \
-v $CADDY_PATH/site:/usr/share/caddy \
-v $CADDY_PATH/Caddyfile:/etc/caddy/Caddyfile \
-v $CADDY_PATH/caddy_data:/data \
-v $CADDY_PATH/caddy_config:/config \
caddy:2

Pingora(占用端口3018 80 443)

Pingora 是一个基于 Rust 的框架,用于构建快速、可靠和可编程的网络系统

https://www.pingorarust.com/
PINGORA_PATH=/data/pingora
MKDIR -P $PINGORA_PATH

docker run -it -d \
--name="pingora" \
--restart=always \
-v $PINGORA_PATH:/opt/pingap \
-p 3018:3018 \
-p 80:80 \
-p 443:443 \
vicanso/pingap -c /opt/pingap/conf \
--autoreload \
[email protected]:3018

这里 cGluZ2FwOjEyMzEyMw== 是 pingap:123123 的 base64 编码值,用于开启 Web 管理后端时的鉴权。端口 80443 用于侦听服务,而 autoreload 用于上游和位置配置的热更新。这两种类型的配置不需要重新启动应用程序。 (用户pingap密码123123 )

HAProxy(占用端口99)

HAProxy主要是做负载均衡的7层,也可以做4层负载均衡

https://www.haproxy.org/
HAPROXY_PATH=/data/haproxy

mkdir -p "$HAPROXY_PATH"
cd "$HAPROXY_PATH"

cat >> haproxy.cfg <<EOF
global
    daemon
    maxconn 2048

defaults
    mode http
    timeout connect 5s
    timeout client  30s
    timeout server  30s

frontend http_front
    bind *:99
    default_backend http_back

backend http_back
    balance roundrobin
    server web1 192.168.1.100:80 check
    server web2 127.0.0.1:80 check

EOF
docker run -d \
--name haproxy \
--user root \
-p 99:99 \
-v $HAPROXY_PATH/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro \
haproxy:lts-alpine

Portainer(主机模式默认占用端口9000 、9443)

portainer是一个轻量级的docker容器管理面板

https://www.portainer.io
PORNTAINER_PATH=/data/portainer
mkdir -p $PORNTAINER_PATH

docker run -d \
--name="portainer" \
--restart=always \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $PORNTAINER_PATH:/data \
6053537/portainer-ce

Halo(端口8090)

Halo 是一款强大易用的开源建站工具 默认是 256M 内存 可以改成 512M 少一些 GC 消耗 CPU

https://www.halo.run/
HALO_PATH=/data/halo2
mkdir -p $HALO_PATH

docker run -d \
--name halo \
--restart always \
-p 8090:8090 \
-v $HALO_PATH:/root/.halo2 \
-e JVM_OPTS="-Xmx256m -Xms256m" \
registry.fit2cloud.com/halo/halo:2

Halo使用系统最大内存建站

HALO_PATH=/data/halo2
mkdir -p $HALO_PATH

TOTAL_MEM_MB=$(awk '/MemTotal/ {print int($2 / 1024)}' /proc/meminfo)
MAX_MEM_MB=$((TOTAL_MEM_MB * 1))
CPU_THREADS=$(grep -c 'processor' /proc/cpuinfo)
docker run -d \
--name halo \
--restart always \
--network host \
-v $HALO_PATH:/root/.halo2 \
-e JVM_OPTS="-Xmx${MAX_MEM_MB}m -Xms${MAX_MEM_MB}m -XX:+TieredCompilation -XX:MaxInlineLevel=100 -XX:+UseJVMCICompiler -XX:CompileThreshold=1 -XX:+UseJVMCICompiler -XX:CICompilerCount=${CPU_THREADS} -XX:+AggressiveOpts -XX:ReservedCodeCacheSize=${TOTAL_MEM_MB}m -XX:+OptimizeStringConcat  -XX:+UnlockExperimentalVMOptions" \
halohub/halo:2
  • -Xmx9g -Xms9g : 为容器分配 9GB 堆内存。

  • -XX:+TieredCompilation : 启用 分层编译 将代码分为多级,逐步编译。JVM 先快速编译热点代码,然后逐渐优化这些代码

  • -XX:MaxInlineLevel=15最大内联级别,控制 JIT 编译器在进行内联优化时的最大深度。内联优化会将方法调用转换为直接插入代码的方式,这有助于减少方法调用的开销

  • -XX:+UseG1GC:使用 G1 垃圾回收器,适合大内存应用。

  • -XX:+UseJVMCICompiler:使用 JVMCI 编译器,支持更现代、更高效的 JIT 编译器(例如 Graal)

  • -XX:CompileThreshold=1 : 将一个方法从 解释模式 转换为 编译模式 时,必须执行的最小次数。默认值通常是 1500,设置为 1000 意味着 JIT 编译器会在方法执行 1000 次后对其进行编译优化

  • -XX:+UseJVMCICompiler : 启用 JVM CI 编译器 将 JVM 字节码转为机器代码的标准接口,支持一些更高效的编译器优化

  • -XX:CICompilerCount=8:启用 8 个 JIT 编译线程(根据 CPU 核心数调整)。

  • -XX:+AggressiveOpts:启用一些高级优化选项。

  • -XX:ReservedCodeCacheSize=1g:增加 JIT 编译缓存大小为 1GB。

  • -XX:MaxRAMPercentage=90.0:使用最大 90% 的系统内存。

  • -XX:+OptimizeStringConcat : 启用优化字符串连接的 JIT 编译

  • -XX:+UnlockExperimentalVMOptions : # 解锁实验性 JVM 选项(用于启用更多激进的优化选项)

使用Dockerfile部署Halo

HALO_PATH=/data/halo2
mkdir -p $HALO_PATH

mkdir -p "$HALO_PATH/application/build/libs/"
cd "$HALO_PATH/application/build/libs/"

# 获取最新版本的发布信息
RELEASE_JSON=$(curl -s https://api.github.com/repos/halo-dev/halo/releases/latest)

# 提取最新版本的 JAR 文件下载链接
# JAR_URL=$(echo $RELEASE_JSON | jq -r '.assets[] | select(.name | test("halo.*\\.jar$")) | .browser_download_url')
JAR_URL="https://gh.kejilion.pro/$(echo $RELEASE_JSON | jq -c '.assets[]' | grep '"name":"halo.*\.jar"' | jq -r '.browser_download_url')"


wget $JAR_URL

cd "$HALO_PATH"

wget -O $HALO_PATH/Dockerfile https://r2.lovelyy.eu.org/raw/backup/halo-docker/Dockerfile

#构建docke镜像
docker build -t graalvm-halo:latest .

TOTAL_MEM_MB=$(awk '/MemTotal/ {print int($2 / 1024)}' /proc/meminfo)
docker run -d \
--name halo \
--restart always \
--network host \
-v $HALO_PATH:/root/.halo2 \
-e JVM_OPTS="-Xmx${TOTAL_MEM_MB}m -Xms${TOTAL_MEM_MB}m" \
graalvm-halo

Upage

https://github.com/halo-dev/upage
UPAGE_PATH=/data/upage

mkdir -p $UPAGE_PATH/data $UPAGE_PATH/logs $UPAGE_PATH/storage

docker run -d \
  --name upage \
  --restart unless-stopped \
  -p 3000:3000 \
  -e LLM_PROVIDER=OpenAI \
  -e PROVIDER_BASE_URL=your-provider-base-url \
  -e PROVIDER_API_KEY=your-openai-api-key \
  -e LLM_DEFAULT_MODEL=your-default-model \
  -e LLM_MINOR_MODEL=your-minor-model \
  -v $UPAGE_PATH/data:/app/data \
  -v $UPAGE_PATH/logs:/app/logs \
  -v $UPAGE_PATH/storage:/app/storage \
  halohub/upage:latest

参数说明如下:

  • -e LLM_PROVIDER=OpenAI:设置默认的 LLM 提供商为 OpenAI,同时兼容支持 OpenAI 规范的 API 接口。

  • -e PROVIDER_BASE_URL=your-provider-base-url:设置 LLM 提供商的 API 基础 URL,部分提供商需要设置此项,例如 Ollama、LMStudio、OpenAI 提供商可选此项。例如 https://api.openai.com/v1

  • -e PROVIDER_API_KEY=your-openai-api-key:设置 LLM 提供商的 API 密钥,大部分提供商需要设置此项。

  • -e LLM_DEFAULT_MODEL=your-default-model:设置默认的 LLM 模型,用于构建页面。

  • -e LLM_MINOR_MODEL=your-minor-model:设置次要的 LLM 模型,用于执行其他任务。

  • -v ./data:/app/data:挂载数据目录

  • -v ./logs:/app/logs:挂载日志目录

  • -v ./storage:/app/storage:挂载存储目录

访问 http://localhost:3000 即可访问 UPage 的界面

Ghost建站(默认端口2368)

https://ghost.org/
GHOST_PATH=/data/ghost

mkdir -p $GHOST_PATH/content
chown -R 1000:1000 $GHOST_PATH/content
chmod -R 755 $GHOST_PATH/content

# 使用临时容器初始化数据库
echo "初始化 Ghost 数据库..."
docker run --rm \
  --name ghost-init \
  -v $GHOST_PATH/content:/var/lib/ghost/content \
  ghost:latest \
  bash -c "mkdir -p /var/lib/ghost/content/data && chown -R node:node /var/lib/ghost/content"

# 重新启动 Ghost 容器
docker run -d \
  --name ghost-blog \
  --restart always \
  -p 2368:2368 \
  -e database__client=sqlite3 \
  -e database__connection__filename='/var/lib/ghost/content/data/ghost.db' \
  -e url=http://localhost:2368 \
  -v $GHOST_PATH/content:/var/lib/ghost/content \
  ghost:latest

uptime-kuma(端口3001)

Uptime Kuma 易于使用的自托管监控工具

https://github.com/louislam/uptime-kuma
UPDATE_KUMA_PATH=/data/uptime-kuma-data
mkdir -p $UPDATE_KUMA_PATH

docker run -d \
--name=uptime-kuma \
-p 3001:3001 \
-v $UPDATE_KUMA_PATH:/app/data \
--restart=always \
louislam/uptime-kuma:latest

kener(端口3000)

https://status.anye.xyz
KENER_PATH=/data/kener
mkdir -p $KENER_PATH


# 生成密钥并保存到文件
KEY=$(openssl rand -base64 32)
echo $KEY

# 启动容器时引用环境变量文件
docker run -d \
--name c\
--restart always \
-e TZ=Asia/Shanghai \
-e KENER_SECRET_KEY=$KEY \
-e ORIGIN="http://你的服务器IP:3000" \
-p 3000:3000 \
-v $KENER_PATH:/config:rw \
rajnandan1/kener:latest

myip(端口18966)

是一个多功能IP工具箱,可以查看自己IP信息及连通性,用网页面板呈现

https://github.com/jason5ng32/MyIP/blob/main/README_ZH.md
MYIP_PATH=/dat/myip

docker run -d \
--name myip \
-p 18966:18966 \
--restart always \
ghcr.io/jason5ng32/myip:latest

青龙(占用端口5700)

青龙是 whyour 大佬写的一个定时任务管理平台,支持 Python3、JavaScript、Shell、Typescript(使用debian解决使用alpine不支持的依赖)

QINGLONG_PATH=/data/ql
mkdir -p $QINGLONG_PATH

docker run -dit \
--name qinglong \
-v $QINGLONG_PATH/config:/ql/config \
-v $QINGLONG_PATH/log:/ql/log \
-v $QINGLONG_PATH/db:/ql/db \
-e QlBaseUrl="/" \
-e QlPort="5700" \
-p 5700:5700 \
--hostname qinglong \
whyour/qinglong:debian

Openresty(arm64)(端口8080)

是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。. 用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关

https://openresty.org/cn/

官方

docker run -d \
--name openresty \
-p 8080:80 \
openresty/openresty:alpine

(可调节配置)

一、启动一个空容器

docker create \
--name temp_openresty \
openresty/openresty:alpine

二、把相关文件复制出来

OPENRESTY_PATH=/data/openresty

mkdir -p $OPENRESTY_PATH/conf.d
# openresty的默认网页文件目录
docker cp temp_openresty:/usr/local/openresty/nginx/html $OPENRESTY_PATH/
# nginx的主要文件配置
docker cp temp_openresty:/usr/local/openresty/nginx/conf/nginx.conf $OPENRESTY_PATH/nginx.conf
# openresty所有配置文件 带端口的
docker cp temp_openresty:/etc/nginx/conf.d $OPENRESTY_PATH/

三、删除临时容器

docker rm temp_openresty

四、修改占用端口80为8080

sed -i 's/listen\s\+80;/listen 8080;/' $OPENRESTY_PATH/conf.d/default.conf

六、启动(可以按照需求修改默认占用的80端口)

docker run -d \
--name openresty \
--network host \
-v $OPENRESTY_PATH/html:/usr/local/openresty/nginx/html:ro \
-v $OPENRESTY_PATH/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf:ro \
-v $OPENRESTY_PATH/conf.d:/etc/nginx/conf.d:ro \
openresty/openresty:alpine

第三方

docker run -d \
--name openresty \
--restart always \
--network host \
bitnami/openresty:latest

防CC版本Openresty(占用端口80 443 可在配置文件修改)

DK8S_DIR=/data/dk8sfirewall
# GH=https://gitee.com/azhaoyang_admin/DK8sDDosFirewall/raw/main
GH=https://gitee.com/white-wolf-vvvk/DK8sDDosFirewall/raw/main

mkdir -p "$DK8S_DIR"
cd "$DK8S_DIR"

for f in cert.crt cert.key nginx.conf env.conf protect.lua record.lua stats.lua persistence.lua save_data.lua view_data.lua cdn_ips.conf; do
  curl -L --retry 3 -o "$DK8S_DIR/$f" "$GH/$f"
done

docker run -d \
--name dk8sfw \
--user=root \
--network host \
--cap-add=NET_ADMIN \
--cap-add=NET_RAW \
--cap-add=SYS_ADMIN \
-v "$DK8S_DIR:/app:rw" \
bailangvvking/dk8sddosfirewall:latest

最小化版本的OpenResty(自建 常更新 有风险)

docker run -d \
--name openresty \
-p 93:80 \
bailangvvking/openresty

Cloudflare Tunnel

Cloudflare Tunnel 是一款隧道软件,可以快速安全地加密应用程序到任何类型基础设施的流量,让您能够隐藏你的 web 服务器 IP 地址,阻止直接攻击,从而专注于提供出色的应用程序。Cloudflare Tunnel提供了一种安全的方式,让您的资源连接到Cloudflare,而无需公共可路由的IP地址

使用基于TCP的HTTP2且开启双栈网络支持

最后一行加你的token

https://www.cloudflare.com/zh-cn/products/tunnel
docker run -d \
--name cftunnel \
--restart always \
--network host \
cloudflare/cloudflared:latest \
--protocol http2 \
--edge-ip-version auto \
tunnel --no-autoupdate run \
--token 你的token

Lucky(端口16601)

Lucky最初是作为一个小工具,由开发者为自己的个人使用而开发,用于替代socat 目前已经实现/集成的主要功能模块有 端口转发

动态域名(DDNS) Web服务 Stun内网穿透 网络唤醒 计划任务 ACME自动证书 网络存储

https://www.lucky666.cn/docs/intro
LUCKY_PATH=/data/lucky
mkdir -p $LUCKY_PATH

docker run -it -d \
--name lucky \
--network host \
--restart always \
-v $LUCKY_PATH:/goodluck \
-e "net.unraid.docker.icon=https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/Lucky/icon.png" \
-e "net.unraid.docker.webui=http://[IP]:[PORT:16601]" \
--pid=host \
--privileged=true \
gdy666/lucky

Alist(端口5244)

Alist是一个支持多种存储、支持网页浏览和WebDAV的文件列表程序,由gin和Solidjs驱动它可以帮助用户统一管理多个云盘中的文件,快速分享文件,以及实现自动化脚本和私有网盘搭建等功能

https://alist.nn.ci/zh/
ALIST_PATH=/data/alist
mkdir -p $ALIST_PATH

docker run -d \
--name="alist" \
--restart=unless-stopped \
-p 5244:5244 \
-v $ALIST_PATH/data:/opt/alist/data \
-e PUID=0 -e PGID=0 -e UMASK=022 \
xhofe/alist:latest

Cloudreve(端口5212)

Cloudreve 可以让您快速搭建起公私兼备的网盘系统。 Cloudreve 在底层支持不同的云存储平台

https://cloudreve.org/
CLOUDREVE_PATH=/data/cloudreve
mkdir -p $CLOUDREVE_PATH

docker run -d \
-p 5212:5212 \
--mount type=bind,source=$CLOUDREVE_PATH/conf.ini,target=/cloudreve/conf.ini \
--mount type=bind,source=$CLOUDREVE_PATH/cloudreve.db,target=/cloudreve/cloudreve.db \
-v $CLOUDREVE_PATH/uploads:/cloudreve/uploads \
-v $CLOUDREVE_PATH/avatar:/cloudreve/avatar \
cloudreve/cloudreve:latest

ddns-go(端口9876)

DDNS_GO_PATH=/data/ddns-go
mkdir -p $DDNS_GO_PATH

docker run -d \
--name ddns-go \
--restart=always \
-p 9876:9876 \
-v $DDNS_GO_PATH:/root \
jeessy/ddns-go

fail2ban

Fail2Ban 是一款入侵防御软件,可以保护服务器免受暴力攻击

https://github.com/fail2ban/fail2ban
FAIL2BAN_PATH=/data/fail2ban
mkdir -p $FAIL2BAN_PATH

docker run -d \
--name=fail2ban \
--cap-add=NET_ADMIN \
--cap-add=NET_RAW \
--network=host \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-e VERBOSITY=-vv \
-v $FAIL2BAN_PATH/config:/config \
-v $FAIL2BAN_PATH/log:/var/log:ro \
-v $FAIL2BAN_PATH/airsonic/log:/remotelogs/airsonic:ro \
-v $FAIL2BAN_PATH/apache2/log:/remotelogs/apache2:ro \
-v $FAIL2BAN_PATH/authelia/log:/remotelogs/authelia:ro \
-v $FAIL2BAN_PATH/emby/log:/remotelogs/emby:ro \
-v $FAIL2BAN_PATH/filebrowser/log:/remotelogs/filebrowser:ro \
-v $FAIL2BAN_PATH/homeassistant/log:/remotelogs/homeassistant:ro \
-v $FAIL2BAN_PATH/lighttpd/log:/remotelogs/lighttpd:ro \
-v $FAIL2BAN_PATH/nextcloud/log:/remotelogs/nextcloud:ro \
-v $FAIL2BAN_PATH/nginx/log:/remotelogs/nginx:ro \
-v $FAIL2BAN_PATH/nzbget/log:/remotelogs/nzbget:ro \
-v $FAIL2BAN_PATH/overseerr/log:/remotelogs/overseerr:ro \
-v $FAIL2BAN_PATH/prowlarr/log:/remotelogs/prowlarr:ro \
-v $FAIL2BAN_PATH/radarr/log:/remotelogs/radarr:ro \
-v $FAIL2BAN_PATH/sabnzbd/log:/remotelogs/sabnzbd:ro \
-v $FAIL2BAN_PATH/sonarr/log:/remotelogs/sonarr:ro \
-v $FAIL2BAN_PATH/unificontroller/log:/remotelogs/unificontroller:ro \
-v $FAIL2BAN_PATH/vaultwarden/log:/remotelogs/vaultwarden:ro \
--restart unless-stopped \
lscr.io/linuxserver/fail2ban:latest

filebrowser(端口8989)

FILEBROWSER_PATH=/data/filebrowser
mkdir -p $FILEBROWSER_PATH

docker run \
--name filebrowser \
--hostname filebrowser \
-v $FILEBROWSER_PATH/file:/srv \
-v $FILEBROWSER_PATH/filebrowser.db:/database.db \
-v $FILEBROWSER_PATH/.filebrowser.json:/.filebrowser.json \
-p 8989:8989 \
filebrowser/filebrowse

Nginx Proxy Manager

一款可视化的反向代理工具,以实现外网访问NAS和部署的服务

https://nginxproxymanager.com
NGINX_PROXY_MANAGER_PATH=/data/npm

mkdir -p $NGINX_PROXY_MANAGER_PATH/letsencrypt

docker run -d \
--name npm \
--restart unless-stopped \
-p 90:80 \
-p 91:81 \
-p 943:443 \
-v $NGINX_PROXY_MANAGER_PATH:/data \
-v $NGINX_PROXY_MANAGER_PATH/letsencrypt:/etc/letsencrypt \
chishin/nginx-proxy-manager-zh

Speedtest

Speedtest-x 测速面板是一个 VPS 网速测试工具,多项测试功能,还可以实时监控 VPS 进出站流量

默认端口是 80 -e WEBPORT 可以指定端口

SPEEDTEST_X_PATH=/data/speedtest-x

mkdir -p $SPEEDTEST_X_PATH

docker run -d \
--name speedtest-x \
-e WEBPORT=12345 \
-p 12345:80 \
--restart always \
-e MAX_LOG_COUNT=1000 \
-e IP_SERVICE=ip.sb \
-e SAME_IP_MULTI_LOGS=true \
-v $SPEEDTEST_X_PATH:/app/data \
stilleshan/speedtest-x

其他测速dcoker容器

docker run -d \
--name looking-glass \
--restart always \
-p 89:80 \
wikihostinc/looking-glass-server

WordPress+Mariadb

WORDPRESS_PATH=/data/wordpress
WORDPRESS_MYSQL_PATH=/data/mysql

mkdir -p $WORDPRESS_PATH
mkdir -p $WORDPRESS_MYSQL_PATH/data
mkdir -p $WORDPRESS_MYSQL_PATH/conf
mkdir -p $WORDPRESS_MYSQL_PATH/logs

docker run -it \
--name wordpress \
-p 9999:80 \
-v $WORDPRESS_PATH:/var/www/html \
-d wordpress

docker run -d \
--name mysql \
-v $WORDPRESS_MYSQL_PATH/data:/var/lib/mysql \
-v $WORDPRESS_MYSQL_PATH/conf:/etc/mysql/conf.d \
-v $WORDPRESS_MYSQL_PATH/logs:/var/log/mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8

NasCab(占用端口80、90)

Nas-Cab是一款个人NAS平台,可以帮助用户构建自己的文件共享和数据存储解决方案。无需专用设备,个人版永久免费,支持多个操作系统和设备

https://www.nascab.cn
NASCAB_PATH=/data/nascab

mkdir -p $NASCAB_PATH/mydata
mkdir -p $NASCAB_PATH/data

docker run -d \
--name nascab \
--restart always \
-v $NASCAB_PATH/mydata:/myData \
-v $NASCAB_PATH/data:/root/.local/share/nascab \
-p 8760:80
-p 5620:90 \
ypptec/nascab

Hugo(端口1313) 官方镜像 ghcr.io/gohugoio/hugo

Hugo 是一个用 Go 编写的静态 HTML 和 CSS 网站生成器,号称是世界上最快的网站构建框架

https://gohugo.io

1.创建项目目录并挂载到容器 强制指定 Hugo 将站点生成到挂载的 /arc目录 创建一个新的 Hugo 站点(GitHub.io镜像)

HUGO_PATH=/data/hugo

mkdir -p $HUGO_PATH/site
cd $HUGO_PATH/site
chmod 777 $HUGO_PATH/site

docker run --rm -it \
-v $HUGO_PATH/site:/src \
-w /src \
bailangvvking/hugo \
new site .

2.下载主题 需要宿主机安装了git

HUGO_PATH=/data/hugo
# 主题
cd $HUGO_PATH/site
git init
git submodule add --depth 1 https://gh-proxy.org/https://github.com/adityatelange/hugo-PaperMod themes/PaperMod
# echo 'theme = "PaperMod"' >> hugo.toml

3.下载配置模板

HUGO_PATH=/data/hugo
mv $HUGO_PATH/site/hugo.toml $HUGO_PATH/site/hugo.toml.bak
wget -O $HUGO_PATH/site/hugo.yaml "https://r2.lovelyy.eu.org/raw/docker/hugo/PaperMod/hugo.yaml"

mkdir -p $HUGO_PATH/site/content/categories
cat > $HUGO_PATH/site/content/categories/_index.md <<EOF
---
title: 分类
layout: categories
---
EOF

mkdir -p $HUGO_PATH/site/content/tags
cat > $HUGO_PATH/site/content/tags/_index.md <<EOF
---
title: 标签
layout: tags
---
EOF

cat > $HUGO_PATH/site/content/archives.md <<EOF
---
title: 归档
layout: archives
---
EOF

cat > $HUGO_PATH/site/content/search.md <<EOF
---
title: "搜索"
layout: "search"
---
EOF

cat > $HUGO_PATH/site/archetypes/default.md <<EOF
---
title: {{ replace .File.ContentBaseName "-" " " | title }}
published: {{ .Date }}
summary: "文章简介"
cover:
  image: "文章封面图。也支持HTTPS"
tags: [标签1, 标签2]
categories: '文章所处的分类'
draft: false 
lang: ''
---
EOF

4:新建某篇文章(以hello.md举例)

HUGO_PATH=/data/hugo
docker run --rm -it \
-v $HUGO_PATH/site:/src \
-w /src \
bailangvvking/hugo \
new content/posts/hello.md

5.启动 Hugo 服务器(主机网络模式 监听V4 V6 端口以1313举例)可以添加-d后台运行

--renderToMemory --templateMetrics --bind=0.0.0.0 --bind :: --port 1313 --buildDrafts --noBuildLock --watch

# (运行) 预览开发时临时!本地!调试的(一定要改最后的网址) --buildDrafts关闭草稿模式 注意要改成访问域名

HUGO_PATH=/data/hugo
docker run -it -d \
--name hugo \
-v $HUGO_PATH/site:/src \
-w /src \
--network=host \
--restart always \
bailangvvking/hugo \
server --bind=0.0.0.0 --bind=:: --port=1313 \
--renderToMemory --templateMetrics --buildDrafts --noBuildLock --watch \
--baseURL=http://你的网站:端口/

Tips:

(构建站点)写入文件(默认 server运行的是内存版本 没有写入到文件中)

HUGO_PATH=/data/hugo

docker run --rm -it -d \
--name hugo \
-v $HUGO_PATH/site:/src \
-w /src \
--network=host \
bailangvvking/hugo \
--bind=0.0.0.0 --bind=:: \
--port=1313 \
--buildDrafts \
--baseURL=http://ipv6.lovelyy.eu.org:1313/

# 创建首页

HUGO_PATH=/data/hugo

docker run --rm -it \
-v $HUGO_PATH/site:/src \
-w /src \
bailangvvking/hugo \
new content/_index.md

# 在主机上查看 Hugo 自动构建的页面 URL 以及可以访问的网址

HUGO_PATH=/data/hugo

docker run --rm -it \
-v $HUGO_PATH/site:/src \
-w /src \
bailangvvking/hugo \
list all

1. hugo 命令

用于生成静态网站

hugo [options]

常用参数

参数

说明

-D, --buildDrafts

构建草稿文章(draft: true

-E, --buildExpired

构建过期文章(expiryDate 过期的文章)

-F, --buildFuture

构建未来发布的文章(publishDate 在未来的文章)

--cleanDestinationDir

在生成站点前清理 public/ 目录

--minify

生成的 HTML/CSS/JS 进行压缩优化

--destination DIR, -d DIR

指定生成的静态文件存放目录(默认 public/

--gc

清理无用文件(垃圾回收)

--templateMetrics

显示模板渲染性能指标

2. hugo server 命令

用于本地开发,开启 Hugo 内置服务器。

hugo server [options]

常用参数

参数

说明

-D, --buildDrafts

显示草稿文章

--bind <ip>

绑定监听的 IP(默认 127.0.0.1

--port <number>

端口号(默认 1313

--baseURL <URL>

指定网站访问的 URL

--disableFastRender

关闭 Hugo 的快速渲染模式(可解决某些页面未刷新问题)

--watch

监听文件变更,自动重新加载(默认开启)

--minify

启用 HTML/CSS/JS 压缩

--navigateToChanged

在浏览器自动跳转到最近修改的页面

--noHTTPCache

禁用浏览器缓存

--renderToDisk

直接写入磁盘,而不是内存

--panicOnWarning

任何警告都视为错误,终止执行

Sonic(默认端口8080)

https://github.com/go-sonic/sonic
SONIC_DIR=/data/sonic

# 创建目录
mkdir -p $SONIC_DIR

docker run -d \
--name sonic \
--network host \
-e LOGGING_LEVEL_APP=warn \
-e SQLITE3_ENABLE=true \
-v $SONIC_DIR:/sonic \
gosonic/sonic:latest
SONIC_DIR=/data/sonic

# 创建目录
mkdir -p $SONIC_DIR

docker run -d \
--name sonic \
--network host \
-v $SONIC_DIR:/sonic \
-e SERVER_HOST="0.0.0.0" \
-e SERVER_PORT=8080 \
-e LOGGING_FILENAME="sonic.log" \
-e LOGGING_LEVEL_APP="info" \
-e LOGGING_LEVEL_GORM="warn" \
-e LOGGING_MAXSIZE=10 \
-e LOGGING_MAXAGE=30 \
-e LOGGING_COMPRESS=false \
-e SQLITE3_ENABLE=true \
-e SONIC_MODE="production" \
-e SONIC_WORK_DIR="/sonic" \
-e SONIC_LOG_DIR="/sonic/logs" \
-e SONIC_ADMIN_URL_PATH="admin" \
bailangvvking/sonic:latest

WebTop远程桌面

webtop基于 Alpine、Ubuntu、Fedora 和 Arch 的容器,包含官方支持的完整桌面环境,可通过任何现代 Web 浏览器访问

https://docs.linuxserver.io/images/docker-webtop/

Ubuntu

docker run -d \
--name=webtop-ubuntu \
--restart unless-stopped \
--security-opt seccomp=unconfined \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-e SUBFOLDER=/ \
-e TITLE=Webtop \
-p 3006:3000 \
-v /data/docker/webtop-ubuntu/data:/config \
-v /var/run/docker.sock:/var/run/docker.sock \
--shm-size="1gb" \
lscr.io/linuxserver/webtop:ubuntu-kde

Alpine

docker run -d \
--name=webtop \
--restart unless-stopped \
--security-opt seccomp=unconfined \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-e SUBFOLDER=/ \
-e TITLE=Webtop \
-e LC_ALL=zh_CN.UTF-8 \
-e DOCKER_MODS=linuxserver/mods:universal-package-install \
-e INSTALL_PACKAGES=font-noto-cjk \
-p 3083:3000 \
-v /data/docker/webtop/data:/config \
-v /var/run/docker.sock:/var/run/docker.sock \
--shm-size="1gb" \
lscr.io/linuxserver/webtop:latest

修改更多镜像系统

lscr.io/linuxserver/webtop:latest
lscr.io/linuxserver/webtop:ubuntu-xfce
lscr.io/linuxserver/webtop:fedora-xfce
lscr.io/linuxserver/webtop:arch-xfce
lscr.io/linuxserver/webtop:debian-xfce

3X-ui(端口2053)

物理安装

bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)

https://github.com/MHSanaei/3x-ui
mkdir -p /data/3x-ui/db /data/3x-ui/cert

curl -o /data/3x-ui/cert/default_server.crt https://gitee.com/white-wolf-vvvk/DK8sDDosFirewall/raw/main/cert.crt
curl -o /data/3x-ui/cert/default_server.key https://gitee.com/white-wolf-vvvk/DK8sDDosFirewall/raw/main/cert.key

docker run -itd \
--name 3x-ui \
--network=host \
--restart=always \
-e XRAY_VMESS_AEAD_FORCED=false \
-v /data/3x-ui/db:/etc/x-ui/ \
-v /data/3x-ui/cert:/etc/x-ui/cert/ \
bigbugcc/3x-ui:latest

AnyTls(占用端口9443)

https://github.com/anytls/anytls-go
docker run -d \
--name anytls-server \
--restart always \
--network host \
-e TZ=Asia/Shanghai \
-e PORT=9443 \
jonnyan404/anytls

-e MIMA=XXXX 可以自定义密码

-s 服务器域名或 IP: 端口

查看信息

docker logs anytls-server

Hy2

docker run -d \
--name hy2 \
--net=host \
--cap-add=NET_ADMIN \
--restart=always \
hsqbh/hy2

docker exec hy2 wget -P /etc/hysteria -O config.yaml https://r2.lovelyy.eu.org/raw/backup/hysteria2/config.yaml

docker restart hy2

# 端口跳跃
# # iptables添加端口转发规则
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 30000:60000 -j REDIRECT --to-ports 12580
# 作废转发
# iptables -t nat -D PREROUTING -i eth0 -p udp --dport 30000:60000 -j REDIRECT --to-ports 12580
passwd : qwe123!@#
- 查看配置文件 : docker exec -it hy2 sh | cat 1.yaml

H UI(Panel Port: 8081 SSH local forwarded port: 8082)

https://github.com/jonssonyan/h-ui
HUI_PATH=/data/h-ui

docker run -d \
  --name h-ui \
  --restart always \
  --network=host \
  --cap-add=NET_ADMIN \
  -e TZ=Asia/Shanghai \
  -v $HUI_PATH/bin:/h-ui/bin \
  -v $HUI_PATH/data:/h-ui/data \
  -v $HUI_PATH/export:/h-ui/export \
  -v $HUI_PATH/logs:/h-ui/logs \
  -v $HUI_PATH/cert:/h-ui/cert \
  jonssonyan/h-ui \
  ./h-ui -p 8081

Warp(端口1080)

docker run -d \
--name warp \
--restart always \
-p 1080:1080 \
-e WARP_SLEEP=2 \
--cap-add=NET_ADMIN \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
--sysctl net.ipv4.conf.all.src_valid_mark=1 \
-v /data:/var/lib/cloudflare-warp \
caomingjun/warp

主机模式

docker run -d \
--name warp \
--restart always \
--network host \
-e WARP_SLEEP=2 \
--cap-add=NET_ADMIN \
-v /data:/var/lib/cloudflare-warp \
caomingjun/warp

带 WARP 的 Xray

docker run -d \
--name warp-xray \
--network host \
--restart always \
misakaben/warp-plus-xray
测试warp(如果输出中包含 warp=on 或者 warp=plus ,容器已经正常工作。如果输出中包含 warp=off ,则说明容器未能连接到 WARP 服务。
curl --socks5 127.0.0.1:1080 https://cloudflare.com/cdn-cgi/trace

MineCraft Folia服务器(端口占用25565)

docker run -it -d \
--name folia \
--network host \
-v /data/folia:/folia \
-e MAX_RAM=100G \
-e MINECRAFT_EULA=true \
--restart=always \
endkind/folia:latest

改MineCraft Folia服务器(端口占用25565) 支持传递ONLINE_MODE

docker run -it -d \
--name folia \
--network host \
-v /data/folia:/folia \
-e MAX_RAM=100G \
-e MINECRAFT_EULA=true \
-e ONLINE_MODE="false" \
--restart=always \
bailangvvking/folia:latest

NPS内内网穿透服务端(面板端口8081通信端口8024)

docker run -d \
--name nps \
--restart=always \
--network=host \
-v /data/nps/conf:/conf \
duan2001/nps

NPC内内网穿透客户端

docker run -d \
--name npc \
--restart=always \
--network=host duan2001/npc \
-server=xxxx:123 -vkey=xxxx,xxxx -tls_enable=false -log=off

Golang(允许网络访问权限)

docker run --rm -it \
-v /data/go:/go/src/app \
-w /go/src/app \
--network host \
golang

HFish(占用端口TCP/4433和TCP/4434)

HFish是一款社区型免费蜜罐,侧重企业安全场景,从内网失陷检测、外网威胁感知、威胁情报生产三个场景出发,为用户提供可独立操作且实用的功能,通过安全、敏捷、可靠的中低交互蜜罐增加用户在失陷感知和威胁情报领域的能力。

https://github.com/hacklcx/HFish
docker run -itd --name hfish \
-v /data/hfish:/usr/share/hfish \
--network host \
--privileged=true \
threatbook/hfish-server:latest

RustDesk

  • TCP(21115, 21116, 21117, 21118, 21119)

  • UDP(21116)

服务端(占用端口21115 21116 21116/udp 21118)

mkdir -p /data/rustdesk/hbbs

docker run -td \
--name hbbs \
-p 21115:21115 \
-p 21116:21116 \
-p 21116:21116/udp \
-p 21118:21118 \
-v /data/rustdesk/hbbs:/root \
rustdesk/rustdesk-server \
hbbs -r [你的地址(IP/域名)]:21116 

中继端(占用端口 21117 21119)

mkdir -p /data/rustdesk/hbbr

docker run -td \
--name hbbr \
-p 21117:21117 \
-p 21119:21119 \
-v /data/rustdesk/hbbr:/root \
rustdesk/rustdesk-server hbbr

读取服务端公钥(仅限第一次启动)

docker logs hbbs | grep Key:

Drawio(占用端口8080)

drawio免费的在线图表软件

docker run -d \
--name drawio \
--restart=always \
-p 8080:8080 \
-v /data/drawio:/var/lib/drawio \
jgraph/drawio

哪吒探针监控[服务端](占用端口3000)

docker run -d \
--name nezha-dash \
--restart always \
-p 3000:3000 \
-v "data/nezha-dash/.env:/app/.env" \
hamster1963/nezha-dash:latest

eBPFdev(占用端口8070)

https://github.com/ebpfdev/explorer
docker run -ti --rm
-p 8070:80 \
--cap-add CAP_SYS_ADMIN
--pid=host \
-e BPF_DIR=/sys/fs/bpf \
-v /sys/fs/bpf:/sys/fs/bpf \
ghcr.io/ebpfdev/explorer:v0.0.7

Cap(占用端口3000)

https://capjs.js.org
docker run -d \
--name cap-standalone \
-p 3000:3000 \
-v /data/cap-data:/usr/src/app/.data \
-e ADMIN_KEY=12bdd02bbce08b97313710fc55a5eb451d98039eb67bded7d94bb7d4ede5 \
--user root \
tiago2/cap:latest

wrk压测(X86) 官方镜像 williamyeh/wrk

docker run --rm \
--name wrk \
--network host \
--cpuset-cpus="0" \
bailangvvking/wrk \
-H "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36" \
-t1 -c100 -d10s http://127.0.0.1:80

wrk发送随机ip请求(X86)

# 下载随机ip的Lua 可选
curl -L -o wrk.lua https://gitee.com/white-wolf-vvvk/DK8sDDosFirewall/raw/main/wrk.lua
docker run --rm \
--name wrk \
--user root \
--network host \
--cpuset-cpus="0" \
-v "$PWD/wrk.lua":/scripts/wrk.lua \
bailangvvking/wrk \
-t1 -c100 -d10s -s /scripts/wrk.lua http://127.0.0.1:80

参数

说明

-t <threads>

使用的线程数(每个线程独立运行压测)

-c <connections>

总连接数(将会在所有线程间均匀分配)

-d <duration>

测试时长(例如 30s, 2m, 1h

-H "<header>"

自定义请求头(可重复)

--latency

显示每个请求的延迟分布(百分位)

--timeout <seconds>

请求超时时间,默认 2 秒

-s <script.lua>

指定 Lua 脚本,实现复杂自定义逻辑

-- <script arguments>

向 Lua 脚本传递自定义参数(放在 -- 后)

<url>

请求目标的完整 URL

wrk2压测(1 个线程、100个并发连接、全局限制1000 req/s、持续 30s)

docker run --rm \
--name wrk2 \
--network host \
--cpuset-cpus="0" \
haydenjeune/wrk2 \
-t1 -c100 -R1000 -d10s http://127.0.0.1:80

参数

含义

-t N

线程数:启动 N 个并行工作线程

-c C

连接数:每个线程保持 C 条 HTTP 长连接

-d DURATION

持续时间:压测总时长,如 30s, 2m

-R RATE--rate RATE

恒定请求速率:每秒发送 RATE 个请求(全局总和) (testdev.tools)

-L

打印时延分位:输出 latency percentiles(例如 P50/P99) (testdev.tools)

-s SCRIPT

Lua 脚本:指定一个 LuaJIT 脚本,用于自定义请求 / 响应逻辑 (github.com)

-H HEADER

自定义 Header:增加 HTTP 请求头,如 -H "X-Auth: token" (testdev.tools)

-T MIME

Content-Type:设置请求的 Content-Type

-u

HTTP/1.0:使用 HTTP/1.0 而非默认的 HTTP/1.1

--timeout T

超时:每个请求超时时间,例如 --timeout 5s

wrk2随机ip请求

# 下载随机ip的Lua 可选
curl -L -o wrk.lua https://gitee.com/white-wolf-vvvk/DK8sDDosFirewall/raw/main/wrk.lua
docker run --rm \
--name wrk \
--user root \
--network host \
--cpuset-cpus="0" \
-v "$PWD/wrk.lua":/scripts/wrk.lua \
haydenjeune/wrk2 \
-H "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36" \
-t1 -c100 -R100000 -d10s http://127.0.0.1:80 -s /scripts/wrk.lua http://127.0.0.1:80

Go-wrk

https://github.com/tsliwowicz/go-wrk
docker run --rm \
--name go-wrk \
--network host \
--cpuset-cpus="0" \
bailangvvking/go-wrk \
-c 10 -d 10 http://127.0.0.1:80

参数

描述

-H

添加到每个请求的头部(可以定义多个 -H 标志)(默认值:空)

-M

HTTP 方法(默认值:GET)

-T

套接字 / 请求超时时间(毫秒)(默认值:1000)

-body

请求体字符串或 @文件名(默认值:空)

-c

使用的 goroutine 数量(并发连接数)(默认值:10)

-ca

用于验证对等方的 CA 文件(SSL/TLS)(默认值:空)

-cert

用于验证对等方的 CA 证书文件(SSL/TLS)(默认值:空)

-d

测试持续时间(秒)(默认值:10)

-f

回放文件名(默认值:空)

-help

打印帮助信息(默认值:false)

-host

主机头(默认值:空)

-http

使用 HTTP/2(默认值:true)

-key

私钥文件名(SSL/TLS)(默认值:空)

-no-c

禁用压缩 - 防止发送 "Accept-Encoding: gzip" 头部(默认值:false)

-no-ka

禁用 KeepAlive - 防止在不同 HTTP 请求之间重用 TCP 连接(默认值:false)

-no-vr

跳过验证服务器的 SSL 证书(默认值:false)

-redir

允许重定向(默认值:false)

-v

打印版本详细信息(默认值:false)

Bombardier压测工具(运行10000次)

docker run --rm \
--cpuset-cpus="0" \
--network host \
alpine/bombardier:latest \
-c 50 -n 10000 -k https://127.0.0.1:443

参数

含义

-n

请求总数(默认 200)

-c

并发连接数(默认 50)

-q

每秒最大请求数(QPS,默认无限)

-z

测试持续时间(例如 30s1m,与 -n 互斥)(不支持了)

-m

请求方法(默认 GET)

-T

请求 Content-Type(如 application/json

-d

请求体数据(字符串或 @filename 文件)

-h

自定义请求头(可重复)

-A

设置 User-Agent

-H2

强制使用 HTTP/2(默认自动)

-disable-compression

禁用压缩(gzip/deflate)

-disable-keepalive

禁用 keep-alive(每次连接都新建)

-x

使用 HTTP 代理(例如:http://127.0.0.1:8080

-host

强制设置请求的 Host

<url>

请求目标地址(必须是合法完整 URL)

穿透工具Natter

#!/bin/bash

# 设置时区变量
TZ="Asia/Shanghai"

# 启动 nginx 容器
docker run -d \
  --name nginx \
  -v /data/nginx/html:/usr/share/nginx/html \
  -e TZ=$TZ \
  -p 18888:80 \
  --restart always \
  nginx

# 等待 nginx 启动完成(可选,确保 natter 依赖 nginx)
sleep 1

# 启动 natter-nginx 容器(使用 host 网络模式,不能与 -p 同时使用)
docker run -d \
  --name natter-nginx \
  --network host \
  -e TZ=Asia/Shanghai \
  --restart always \
  nattertool/natter -p 18888

Hexo(占用端口4000)

Hexo 是一个由Node.js驱动的博客框架,支持 Markdown、一键部署、插件和多种模板引擎。Hexo 可以让你轻松创建、管理和部署你的个人或团队博客

https://hexo.io/zh-cn/

初始化 Hexo(首次执行)

mkdir -p /data/hexo/site
cd /data/hexo/site

docker run --rm -it \
--user=root \
-v /data/hexo/site:/home/hexo/.hexo \
taskbjorn/hexo:main hexo init

2. 启动 Hexo 本地服务器(开发预览)

docker run --rm -it -d \
--name hexo \
--user=root \
-v /data/hexo/site:/home/hexo/.hexo \
--network host \
taskbjorn/hexo:main hexo server

3. 构建静态文件(生成 HTML)(可选)

docker run --rm -it \
-v /data/hexo/site:/home/hexo/.hexo \
taskbjorn/hexo:main hexo generate

新建文章

docker run --rm -it \
-v /data/hexo/site:/home/hexo/.hexo \
taskbjorn/hexo:main hexo new "my-post"

K3S

主(Master 占用端口6443)

mkdir -p /data/k3s/config
cat > /data/k3s/config/registries.yaml << EOF
mirrors:
  docker.io:  # Docker Hub 加速
    endpoint:
      - "https://docker.mirrors.ustc.edu.cn"  # 中科大
      - "https://docker.m.daocloud.io"        # DaoCloud
  k8s.gcr.io:  # K8s 官方镜像加速(K3s 组件依赖)
    endpoint:
      - "https://k8s-mirror.aliyuncs.com"
  quay.io:  # Quay 镜像加速(部分 K3s 组件用)
    endpoint:
      - "https://quay.m.daocloud.io"
EOF

docker run -d \
--name k3s-server \
--privileged \
--network=host \
-v /sys/fs/cgroup:/sys/fs/cgroup:rw \
-v /var/run:/var/run \
-v /data/k3s:/data/k3s \
-v /data/k3s/config/registries.yaml:/etc/rancher/k3s/registries.yaml \
--tmpfs /run \
--tmpfs /run/lock \
rancher/k3s server \
--https-listen-port 6443 \
--token "${你的token}" \
--kube-apiserver-arg=service-node-port-range=1-65535

获取Token

docker exec k3s-server cat /var/lib/rancher/k3s/server/node-token

获取节点

docker exec k3s-server kubectl get nodes -o wide

从(agent)

mkdir -p /data/k3s/config
cat > /data/k3s/config/registries.yaml << EOF
mirrors:
  docker.io:  # Docker Hub 加速
    endpoint:
      - "https://docker.mirrors.ustc.edu.cn"  # 中科大
      - "https://docker.m.daocloud.io"        # DaoCloud
  k8s.gcr.io:  # K8s 官方镜像加速(K3s 组件依赖)
    endpoint:
      - "https://k8s-mirror.aliyuncs.com"
  quay.io:  # Quay 镜像加速(部分 K3s 组件用)
    endpoint:
      - "https://quay.m.daocloud.io"
EOF

docker run -d \
--name k3s-agent \
--privileged \
-e K3S_URL=https://yyy.520613.xyz:9000 \
-e K3S_TOKEN=2003021620030216Aa+ \
-v /sys/fs/cgroup:/sys/fs/cgroup:rw \
-v /var/run:/var/run \
-v /data/k3s/config/registries.yaml:/etc/rancher/k3s/registries.yaml \
--tmpfs /run --tmpfs /run/lock \
rancher/k3s agent \
--node-name=你的集群自定义名称

Gemini-Balance(占用端口8000)

mkdir -p /data/gemin && cd /data/gemin

cat << EOF > .env
API_KEYS=["AIzaSyCNqQcHYVQrJ68BQtGit0Qi2kRQvD16YXQ","AIzaSyBTNiq1oL3WI0dHVJ1uPQY-VvVbwhKyJUY","AIzaSyAQDny7fVk863ln4a9n_RB0rHXHltIWnaU","AIzaSyCN8bkQEv-HT7jT_-pYnPjXoQP5bC9_dqE","AIzaSyBBK9nXzI7j6knl0GaxpYZ4hXyZbDVg8V8","AIzaSyAxU9thzVF2MgnzGudJMSRwnmoIKMjVQj8","AIzaSyCG3b8L7n2RSMRCVdwQtKP5oMnQNX83YLM","AIzaSyDBDKgIkOPoWRV41gGovIrGseeQFKRUgis","AIzaSyCSYgwog5AV72QotZ44H0aepePVqh0lrtA","AIzaSyDcml1coOWXBhsPLhtnBuSTUwGhs-fR330","AIzaSyDM01efag1vnTZ0lBOSmP3CKske7RK4C9I"]
ALLOWED_TOKENS=["你的Token"]
DATABASE_TYPE=sqlite
SQLITE_DATABASE=default_db
EOF

docker run -d \
--name gemin \
--network host \
--env-file .env \
-v /data/gemin:/app/data \
ghcr.io/snailyp/gemini-balance:latest

Gpt-Load(占用端口3001)

DASH_TOKENS=你的Token

docker run -d \
--name gpt-load \
--network host \
-e AUTH_KEY=$DASH_TOKENS \
-e PORT=3001 \
-e HOST=0.0.0.0 \
-e TZ=Asia/Shanghai \
-e MAX_CONCURRENT_REQUESTS=100 \
-v "/data/gpt-load":/app/data \
ghcr.io/tbphp/gpt-load:latest

# 使用 sk-123456 登录管理界面:http://localhost:3001

Socks5(占用端口1080)

USERNAME=myuser
PASSWORD=myuser

docker run -itd \
--name socks5 \
--restart always \
--network host \
-e PROXY_USER=$USERNAME \
-e PROXY_PASSWORD=$PASSWORD \
-e PROXY_SERVER=0.0.0.0:1080 xkuma/socks5

dst-admin-go(面板占用端口TCP 8082)

https://github.com/carrot-hu23/dst-admin-go?tab=readme-ov-file

默认配置如下

# steamcmd
/root/steamcmd

# dst-dedicated-server
/root/dst-dedicated-server

# 备份
/root/.klei/DoNotStarveTogether/backup

# mod 下载路径
/root/.klei/DoNotStarveTogether/download_mod

容器存档启动路径

/root/.klei/DoNotStarveTogether

容器存档备份路径

/app/backup

容器存档模组路径

/app/mod

容器玩家日志路径

/app/dst-db

容器服务日志路径

/app/dst-admin-go.log

容器启动饥荒路径

/app/dst-dedicated-server

容器启steamcmd

/app/steamcmd

mkdir -p /data/dst/steamcmd /data/dst/server /data/dst/dstsave/backup /data/dst/dstsave/backup /data/dst/mods /data/dst/db /data/dst/log

wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz -P /data/dst/steamcmd
tar -zxvf /data/dst/steamcmd/steamcmd_linux.tar.gz -C /data/dst/steamcmd

docker run -d \
--name dst \
--network host \
--dns 223.5.5.5 \
-v /etc/localtime:/etc/localtime:ro \
-v /data/dst/steamcmd:/app/steamcmd \
-v /data/dst/server:/app/dst-dedicated-server \
-v /data/dst/dstsave/backup:/app/backup \
-v /data/dst/dstsave:/root/.klei/DoNotStarveTogether \
-v /data/dst/mods:/app/mod \
-v /data/dst/db:/app/dst-db \
-v /data/dst/log:/app/dst-admin-go.log \
hujinbo23/dst-admin-go:1.5.2

mkdir -p /data/dstsave
cd /data/dstsave

docker run -d \
--name dst \
--network host \
-v /etc/localtime:/etc/localtime:ro \
-v ${PWD}/dstsave:/root/.klei/DoNotStarveTogether \
-v ${PWD}/dstsave/back:/app/backup \
-v ${PWD}/steamcmd:/app/steamcmd \
-v ${PWD}/dst-dedicated-server:/app/dst-dedicated-server \
-v ${PWD}/dstsave/dst-db:/app/dst-db \
-v ${PWD}/dstsave/password.txt:/app/password.txt \
-v ${PWD}/dstsace/first:/app/first \
hujinbo23/dst-admin-go:1.3.0

Lobe chat 适配 free-api 全系列

https://github.com/Yanyutin753/lobe-chat
docker run -d \
--name lobe-chat \
-p 3210:3210 \
-e DEBUG=prod \
-e OPENAI_API_KEY=密钥 \
-e OPENAI_PROXY_URL=接口地址 \
-e ACCESS_CODE=使用密码 \
 yangclivia/lobe-chat:latest

豆包 AI Free 服务(占用端口8000)

docker run -it -d --init \
--name doubao \
-p 8001:8000 \
-e TZ=Asia/Shanghai \
vinlic/doubao-free-api:latest

阿里云 AI Free服务(占用端口8000)

docker run -it -d --init \
--name qwen \
-p 8000:8000 \
-e TZ=Asia/Shanghai \
vinlic/qwen-free-api:latest

Kimi-free-api

可用模型(kimi-k2-0905-previewkimi-k2-0711-previewkimi-k2-turbo-preview)

https://llm-red-team.github.io/
docker run -it -d \
--name kimi-free-api \
--init \
-p 8002:8000 \
-e TZ=Asia/Shanghai \
vinlic/kimi-free-api:latest

Qwen2API(可选-e REDIS_URL)

https://github.com/Rfym21/Qwen2API

可用模型(qwen-max-latest qwen-max-latest-thinking qwen3-max-2025-10-30)

QWEN2_PATH=/data/qwen

docker run -d \
--name qwen2api \
-p 3000:3000 \
-e LISTEN_ADDRESS=0.0.0.0 \
-e SERVICE_PORT=3000 \
-e API_KEY=sk-admin123,sk-user456,sk-user789 \
-e DATA_SAVE_MODE=none \
-e CACHE_MODE=file \
-e ACCOUNTS= \
-v $QWEN2_PATH/caches:/app/caches \
rfym21/qwen2api:latest

官方的

QWEN2_PATH=/data/qwen
docker run -d \
--name qwen2api \
-p 3000:3000 \
-e API_KEY=sk-admin123,sk-user456,sk-user789 \
-e DATA_SAVE_MODE=none \
-e CACHE_MODE=file \
-e ACCOUNTS= \
-v $QWEN2_PATH/caches:/app/caches \
rfym21/qwen2api:latest

参数

说明

示例

LISTEN_ADDRESS

服务监听地址

localhost0.0.0.0

SERVICE_PORT

服务运行端口

3000

API_KEY

API 访问密钥,支持多密钥配置。第一个为管理员密钥(可访问前端管理页面),其他为普通密钥(仅可调用 API)。多个密钥用逗号分隔

sk-admin123,sk-user456,sk-user789

PM2_INSTANCES

PM2 进程数量

1/4/max

PM2_MAX_MEMORY

PM2 内存限制

100M/1G/2G

SEARCH_INFO_MODE

搜索结果展示格式

tabletext

OUTPUT_THINK

是否显示 AI 思考过程

truefalse

SIMPLE_MODEL_MAP

简化模型映射,只返回基础模型不包含变体

truefalse

DATA_SAVE_MODE

数据持久化方式

none/file/redis

REDIS_URL

Redis 数据库连接

redis://localhost:6379

CACHE_MODE

图片缓存存储方式

default/file

LOG_LEVEL

日志级别

DEBUG/INFO/WARN/ERROR

ENABLE_FILE_LOG

是否启用文件日志

truefalse

LOG_DIR

日志文件目录

./logs

MAX_LOG_FILE_SIZE

最大日志文件大小 (MB)

10

MAX_LOG_FILES

保留的日志文件数量

5

EdgeOne自动化上传证书并部署

https://github.com/zfb132/qcloud-ssl-cdn
docker run -d \
--name qcloud-ssl-cdn \
--restart=unless-stopped \ 
-e CF_TOKEN=xxx \ 
-e ACME_DNS_TYPE=dns_cf \ 
-e ACME_DOMAIN=520613.xyz \
-e SECRETID=xxx \
-e SECRETKEY=xxx \
-e CDN_DOMAIN=blog.520613.xyz \
-e RUN_NOW=true \
ghcr.io/zfb132/qcloud-ssl-cdn:main

Go实现的实时消息(占用端口8080)

mkdir -p /data/realtime/data /data/realtime/app /data/realtime/static

docker run -d \
--name realtime \
--network host \
-v /data/realtime/data:/data \
-v /data/realtime/static:/static \
--restart unless-stopped \
kjlion/realtime-msgboard:latest

Go实现的bbs论坛(占用端口8082 3000)

mkdir -p /data/bbs-go
docker volume create bbs-go-data

docker run \
--name bbs-go \
--network=host \
-v bbs-go-data:/app/bbs-go/data \
mlogclub/bbs-go:4.0.3

N8n(占用端口5678)

N8N_PATH=/data/n8n
LATEST_VERSION=$(curl -s "https://api.github.com/repos/other-blowsnow/n8n-i18n-chinese/releases/latest" | awk -F'"' '/browser_download_url/{print $4}' | head -1)

# 1. 创建解压目标目录
mkdir -p $N8N_PATH/node $N8N_PATH/dist

# 2. 下载中文汉化 UI 文件
wget https://gh.kejilion.pro/$LATEST_VERSION

# 3. 将下载的文件解压到指定目录
tar -xzf editor-ui.tar.gz -C $N8N_PATH/

# (可选)删除下载的压缩包,如果不再需要
rm editor-ui.tar.gz


docker run -it -d \
--name n8n \
--network host \
--user=root \
-e GENERIC_TIMEZONE="Asia/Shanghai" \
-e TZ="Asia/Shanghai" \
-e N8N_DEFAULT_LOCALE=zh-CN \
-v $N8N_PATH/node:/home/node/.n8n \
-e N8N_SECURE_COOKIE=false \
-v $N8N_PATH/dist:/usr/local/lib/node_modules/n8n/node_modules/n8n-editor-ui/dist \
n8nio/n8n

微信Bot

docker run -d \
  --name chatgpt-on-wechat \
  --security-opt seccomp:unconfined \
  -e CHANNEL_TYPE='web' \
  -e OPEN_AI_API_KEY='YOUR API KEY' \
  -e MODEL='' \
  -e PROXY='' \
  -e SINGLE_CHAT_PREFIX='["bot", "@bot"]' \
  -e SINGLE_CHAT_REPLY_PREFIX='"[bot] "' \
  -e GROUP_CHAT_PREFIX='["@bot"]' \
  -e GROUP_NAME_WHITE_LIST='["ChatGPT测试群", "ChatGPT测试群2"]' \
  -e IMAGE_CREATE_PREFIX='["画", "看", "找"]' \
  -e CONVERSATION_MAX_TOKENS=1000 \
  -e SPEECH_RECOGNITION='False' \
  -e CHARACTER_DESC='你是基于大语言模型的AI智能助手,旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。' \
  -e EXPIRES_IN_SECONDS=3600 \
  -e USE_GLOBAL_PLUGIN_CONFIG='True' \
  -e USE_LINKAI='False' \
  -e LINKAI_API_KEY='' \
  -e LINKAI_APP_CODE='' \
  zhayujie/chatgpt-on-wechat

DeepSeek2api

(模型可选 deepseek-chat deepseek-reasoner deepseek-chat-search deepseek-reasoner-search )

https://github.com/iidamie/deepseek2api
mkdir -p /data/deepseek2api
tee /data/deepseek2api/config.json <<EOF
{
  "keys": [
    "key1",
    "key2"
  ],
  "accounts": [
    {
      "email": "[email protected]",
      "password": "password1",
      "token": ""
    },
    {
      "mobile": "12345678901",
      "password": "password2",
      "token": ""
    }
  ]
}
EOF

docker run -d \
--name deepseek2api \
-p 5001:5001 \
-v "/data/deepseek2api/config.json:/app/config.json" \
ghcr.io/iidamie/deepseek2api:latest

ChatGpt2-api

https://github.com/LanQian528/chat2api
docker run -d \
  --name chat2api \
  -p 5005:5005 \
  -v /data/chatgpt:/app/data \
  -e TZ=Asia/Shanghai \
  -e AUTHORIZATION=sk-xxx \
  lanqian528/chat2api

docker run -d \
  --name chat-share \
  -p 5100:5100 \
  -e SECRET_KEY=your_admin_secret_key \
  -e AUTHORIZATION=sk-xxx \
  -e DOMAIN_CHATGPT=http://127.0.0.1:5005 \
  ghcr.io/h88782481/chat-share:latest

1Panel(Docker)

PANEL_PATH=/data/1panel

mkdir -p $PANEL_PATH

docker run -d \
--name 1panel \
--restart always \
--network host \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/docker/volumes:/var/lib/docker/volumes \
-v $PANEL_PATH/opt:/opt \
-v $PANEL_PATH/root:/root \
-e TZ=Asia/Shanghai \
moelin/1panel:latest

Github云托管

docker run -d \
 --name gh-action \
 --restart always \
 --network host \
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v /var/lib/docker/volumes:/var/lib/docker/volumes \
 -e RUN_AS_ROOT=true \
 -e RUNNER_SCOPE=org \
 -e ORG_NAME=你的组织名称 \
 -e ACCESS_TOKEN=ghp_xxx你的PATxxx \
 -e RUNNER_NAME="你的Runner名称" \
 myoung34/github-runner:latest