记录容器云基于debian镜像的自由组合

当然很多镜像都是有着专用的功能,这也是docker的设计目标,但是有时候我们也想把docker当vps使用。

所以,就想基于debian的镜像自由发挥。。。

 

第一步:基于 debian:12-slim 开启一个容器

关键要设置:挂载一个目录,比如/app,这个后面是自由发挥的舞台和空间,他不会随着容器的重启而消失!

基于 debian 的容器当然是无法直接启动,没有主进程啊,所以重点启动命令是 /bin/tail -f /dev/null

当然这个命令啥也不会干,但是app有了,命令行也可以使用了。

 

第二步:需要一个进程管理工具supervisor

你必须下载轻量级版本的:https://github.com/ochinchina/supervisord/releases/download/v0.7.3/supervisord_0.7.3_Linux_64-bit.tar.gz

不要使用基于python的,太重了。解压出来supervisord文件上传到 /app/bin,然后在命令行执行 chmod +x supervisord

现在你可以考虑你准备要supervisord帮你启动啥小工具了,比如我的配置文件:

[supervisord]
nodaemon=true
logfile=/app/logs/supervisord.log
pidfile=/app/run/supervisord.pid
user=root

; ===========================================
; Sing-box
; ===========================================
[program:singbox]
command=/app/bin/sing-box run -c /app/etc/singbox.json
autostart=true
autorestart=true
stdout_logfile=/app/logs/singbox.log
stderr_logfile=/app/logs/singbox.err
startretries=3
startsecs=5

; ===========================================
; Cloudflared Tunnel
; ===========================================
[program:cloudflared]
command=/app/bin/cloudflared tunnel run --token $CF_TUNNEL_TOKEN
autostart=true
autorestart=true
stdout_logfile=/app/logs/cloudflared.log
stderr_logfile=/app/logs/cloudflared.err
startretries=3
startsecs=5

当然配置文件要启动的工具也要准备,不然启动肯定报错啊;

比如第一个:https://github.com/SagerNet/sing-box/releases/download/v1.12.12/sing-box-1.12.12-linux-amd64.tar.gz

比如第二个:https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64

下载好了放入 /app/bin 目录,设置好执行权限。

singbox肯定需要配置文件的:

{
  "log": {
    "level": "info"
  },
  "inbounds": [
    {
      "tag": "hysteria2",
      "type": "hysteria2",
      "listen": "::",
      "listen_port": 19861,
      "users": [
        {
          "password": "XXXXXXXXXXXXX"
        }
      ],
      "tls": {
        "enabled": true,
        "alpn": ["h3"],
        "key_path": "/app/etc/tls.key",
        "certificate_path": "/app/etc/tls.cer"
      }
    },
    {
      "tag": "vless-ws",
      "type": "vless",
      "listen": "127.0.0.1",
      "listen_port": 19862,
      "users": [
        {
          "uuid": "XXXXXXXXX"
        }
      ],
      "transport": {
        "type": "ws",
        "path": "/XXXXXXXXXXXXX",
        "headers": {
          "Host": "XXXXXXXXX.top"
        }
      }
    }
  ],
  "outbounds": [
    {
      "type": "direct",
      "tag": "direct"
    }
  ]
}

你会发现singbox还需要tls证书,没有问题:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.cer -subj "/CN=localhost"

这样就会生成tls.key和tls.cer,可以使用了;

 

第三步:修改容器启动命令

command = /app/bin/supervisord -c /app/etc/supervisord.conf

重启吧,以后你需要什么就修改supervisor配置文件就行了,需要的小工具提前放到 /app/bin 目录就好了。

最后一个大事:你的小工具肯定要暴露一些端口出来才能使用啊,配置一下就行了,happy!

 

posted @ 2025-11-30 18:27  blog_momo  阅读(0)  评论(0)    收藏  举报