Docker部署netdata监控系统数据

Github 1 2 3 # 创建文件夹及yaml文件 mkdir -p /opt/netdata/netdataconfig /opt/netdata/netdatalib /opt/netdata/netdatacache && cd /opt/netdata nano docker-compose.yaml Docker-compose 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 services: netdata: image: netdata/netdata container_name: netdata pid: host network_mode: "host" restart: unless-stopped cap_add: - SYS_PTRACE - SYS_ADMIN security_opt: - apparmor:unconfined ports: - "19999:19999" volumes: - ./netdataconfig:/etc/netdata - ./netdatalib:/var/lib/netdata - ./netdatacache:/var/cache/netdata - /:/host/root:ro,rslave - /etc/passwd:/host/etc/passwd:ro - /etc/group:/host/etc/group:ro - /etc/localtime:/etc/localtime:ro - /proc:/host/proc:ro - /sys:/host/sys:ro - /etc/os-release:/host/etc/os-release:ro - /var/log:/host/var/log:ro - /var/run/docker.sock:/var/run/docker.sock:ro volumes: netdataconfig: netdatalib: netdatacache: 1 docker compose up -d Docker CLI 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 docker run -d --name=netdata \ --pid=host \ --network=host \ -p 19999:19999 \ -v ./netdataconfig:/etc/netdata \ -v ./netdatalib:/var/lib/netdata \ -v ./netdatacache:/var/cache/netdata \ -v /:/host/root:ro,rslave \ -v /etc/passwd:/host/etc/passwd:ro \ -v /etc/group:/host/etc/group:ro \ -v /etc/localtime:/etc/localtime:ro \ -v /proc:/host/proc:ro \ -v /sys:/host/sys:ro \ -v /etc/os-release:/host/etc/os-release:ro \ -v /var/log:/host/var/log:ro \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ --restart unless-stopped \ --cap-add SYS_PTRACE \ --cap-add SYS_ADMIN \ --security-opt apparmor=unconfined \ netdata/netdata 1 sudo cat /opt/netdata/netdatalib/netdata_random_session_id

五月 15, 2025 · 1 分钟 · 205 字 · Beiyuan

Docker部署Moviepilot媒体库自动化管理

Github Document 1 2 mkdir /opt/mp && cd /opt/mp nano docker-compose.yaml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 services: moviepilot: stdin_open: true tty: true container_name: moviepilot-v2 hostname: moviepilot-v2 volumes: - '/root/Downloads:/media'# 这里参考文档 - './moviepilot-v2/config:/config' - './moviepilot-v2/core:/moviepilot/.cache/ms-playwright' - '/var/run/docker.sock:/var/run/docker.sock:ro' environment: - 'NGINX_PORT=3000' - 'PORT=3001' - 'PUID=0' - 'PGID=0' - 'UMASK=000' - 'TZ=Asia/Shanghai' - 'SUPERUSER=admin' restart: always image: jxxghp/moviepilot-v2:latest network_mode: host # 当使用内置网关时,可不启用 # networks: # moviepilot: # 定义一个名为 moviepilot 的自定义网络 # name: moviepilot # 网络的名称 1 docker compose up -d 获取API密钥及面板密码 1 2 3 docker logs moviepilot-v2 API:hxMQdzy_eAk-byK5Xp37EA PASSWORD:fWf1TamQrU7sW-oMHl9c-g

五月 15, 2025 · 1 分钟 · 153 字 · Beiyuan

Docker部署随机图片API

Github 1 2 mkdir /opt/api && cd /opt/api nano docker-compose.yaml 1 2 3 4 5 6 7 8 9 10 11 version: '3.9' services: random-api: image: 'neixin/random-pic-api' volumes: # 竖屏图片 - './portrait:/var/www/html/portrait' # 横屏图片 - './landscape:/var/www/html/landscape' ports: - '8080:80' 1 docker compose up -d 转换脚本 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 from PIL import Image import os # 检查图片方向 def get_image_orientation(image_path): with Image.open(image_path) as img: width, height = img.size return "landscape" if width > height else "portrait" # 转换图片为 WebP 格式 def convert_to_webp(image_path, output_folder, max_pixels=178956970): try: with Image.open(image_path) as img: # Check image size width, height = img.size if width * height > max_pixels: print(f"Skipping {image_path} because it exceeds the size limit.") return # Save the image as WebP output_path = os.path.join(output_folder, os.path.splitext(os.path.basename(image_path))[0] + ".webp") img.save(output_path, "webp") except Exception as e: print(f"Failed to convert {image_path}: {e}") # 遍历文件夹中的图片 def process_images(input_folder, output_folder_landscape, output_folder_portrait): for filename in os.listdir(input_folder): if filename.endswith(('.jpg', '.jpeg', '.png')): image_path = os.path.join(input_folder, filename) orientation = get_image_orientation(image_path) try: if orientation == "landscape": convert_to_webp(image_path, output_folder_landscape) else: convert_to_webp(image_path, output_folder_portrait) except Exception as e: print(f"Error processing {image_path}: {e}. Skipping this image.") # 指定输入和输出文件夹 input_folder = "/root/input" output_folder_landscape = "/root/landscape" output_folder_portrait = "/root/portrait" # 执行转换 process_images(input_folder, output_folder_landscape, output_folder_portrait)

五月 15, 2025 · 1 分钟 · 273 字 · Beiyuan