×

docker使用

批量生成docker容器配置模板,用于编排大批量的同类容器

dingpeng dingpeng 发表于2025-09-04 浏览30 评论0
###使用weget下载: wget https://dingpeng.cc/mkconfig.py
###使用curl下载: curl -O https://dingpeng.cc/mkconfig.py


def generate_docker_compose(prefix="fsu", terminal_prefix="jsxnj", count=8, output_file="docker-compose.yml"):
    """
    生成Docker Compose配置
    
    Args:
        prefix: 服务名称前缀(如:fsu)
        terminal_prefix: TERMINAL_ID前缀(如:jsxnj)
        count: 生成的服务数量
        output_file: 输出文件名
    """
   
    # 基础模板
    template = f'''version: '3.8'
networks: 
  fsunetwork:
    driver: bridge
    ipam:
      config:
        - subnet: 172.200.200.0/24
services:
'''
    # 为每个服务生成配置,image填写实际需要的镜像的名称
    #####注意:image名称中,\斜杠可能会识别成转义字符,可选择使用/斜杠,docker compose都可以识别
    for i in range(1, count + 1):
        service_name = f"{prefix}{i}"
        terminal_id = f"{terminal_prefix}{service_name}"
       
        service_config = f'''  {service_name}:
    image: fsuclient
    restart: no
    networks: 
      - fsunetwork
    cap_add:
      - NET_ADMIN
    devices:
      - /dev/ppp
    environment:
      - TERMINAL_ID={terminal_id}
'''
        template += service_config
    # 写入文件
    with open(output_file, 'w') as f:
        f.write(template)
   
    print(f"已生成 {count} 个服务配置到 {output_file}")
    print(f"服务名称前缀: {prefix}")
    print(f"TERMINAL_ID前缀: {terminal_prefix}")
# 使用示例
if __name__ == "__main__":
    # 默认生成8个fsu服务,可用参数如下:
    # prefix: 服务名称前缀(如:fsu)
    # terminal_prefix: TERMINAL_ID前缀(如:jsxnj)
    # count: 生成的服务数量
    # output_file: 输出文件名
    generate_docker_compose()
   
    # 自定义示例:生成12个fsu服务,TERMINAL_ID前缀不变
    # generate_docker_compose(count=12