标签: Docker

  • 使用 Docker 部署和运行 Mobile Security Framework (MobSF)

    Mobile Security Framework (MobSF) 是一款开源、自动化的移动应用安全分析平台,全面支持 Android、iOS 和 Windows Mobile 应用的安全研究。它通过强大的静态和动态分析能力,助力移动应用安全、渗透测试、恶意软件和隐私分析等多种场景。MobSF 能够解析 APK、IPA、APPX 及源代码,并在动态分析中提供交互式测试、运行时数据和网络流量监控。其 REST API 和 CLI 工具的集成性,使其能无缝融入 DevSecOps 和 CI/CD 流程,有效增强安全工作流。

    • 多平台支持: 支持分析 Android (APK)、iOS (IPA) 和 Windows Mobile (APPX) 应用,并能解析其源代码。
    • 静态分析: 深入分析应用的代码、配置文件和资源文件,发现潜在的安全漏洞和敏感信息泄露。
    • 动态分析: 提供交互式测试环境,允许在运行时监控应用行为、捕获网络流量和分析运行时数据。
    • 集成性: 提供 REST API 和命令行界面 (CLI) 工具,方便集成到 DevSecOps 和持续集成/持续交付 (CI/CD) 流程中,提升安全工作流的效率。

    1. 拉取 MobSF Docker 镜像

    docker pull opensecurity/mobile-security-framework-mobsf:latest

    2. 运行 MobSF Docker 容器

    docker run -it --rm -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest

    3. 访问 MobSF Web 界面

    启动完成后在你的 Web 浏览器中访问 MobSF 的 Web 界面。在地址栏中输入:

    http://localhost:8000

    默认的登录凭据是:

    • 用户名: mobsf
    • 密码: mobsf

    4. 使用 MobSF

    登录成功后,你就可以开始使用 MobSF 进行移动应用的安全分析了:

    1. 上传应用: 在 MobSF 的 Web 界面上,点击 “Upload & Analyze” 按钮。
    2. 选择文件: 选择你要分析的 Android (APK)、iOS (IPA) 或 Windows Mobile (APPX) 应用程序文件。
    3. 开始分析: 点击 “Submit” 或类似的按钮开始上传和分析。
  • 使用Docker部署开源 RSS 阅读器 Miniflux

    Miniflux 是一款注重简洁与高效的开源 RSS 阅读器,用户可自行部署。它支持多种订阅格式,提供纯粹的阅读体验,具备文章过滤、标签管理、阅读状态跟踪等实用功能。作为自托管方案,Miniflux 无广告和追踪,让用户专注于内容本身。

    1. 前提条件

    在开始部署之前,请确保你的系统已经安装了 Docker 和 Docker Compose。如果尚未安装,请参考 Docker 官方文档进行安装。

    2. 使用 Docker Compose 部署 Miniflux

    通过 Docker Compose,你可以轻松地定义和管理 Miniflux 及其依赖的服务。

    2.1 创建 Docker Compose 配置文件

    首先,在你希望存放配置文件的目录下创建一个名为 docker-compose.yml 的文件,并将以下内容粘贴到文件中:

    services:
      miniflux:
        image: miniflux/miniflux:latest
        ports:
          - "80:8080"
        depends_on:
          db:
            condition: service_healthy
        environment:
          - DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
          - RUN_MIGRATIONS=1
          - CREATE_ADMIN=1
          - ADMIN_USERNAME=admin
          - ADMIN_PASSWORD=qixinlee.com
        healthcheck:
          test: ["CMD", "/usr/bin/miniflux", "-healthcheck", "auto"]
      db:
        image: postgres:17-alpine
        environment:
          - POSTGRES_USER=miniflux
          - POSTGRES_PASSWORD=secret
          - POSTGRES_DB=miniflux
        volumes:
          - miniflux-db:/var/lib/postgresql/data
        healthcheck:
          test: ["CMD", "pg_isready", "-U", "miniflux"]
          interval: 10s
          start_period: 30s
    volumes:
      miniflux-db:

    2.2 启动 Miniflux 服务

    打开你的终端,导航到包含 docker-compose.yml 文件的目录,然后执行以下命令来启动 Miniflux 及其依赖的 PostgreSQL 数据库服务:

    docker compose up -d

    这条命令会在后台启动定义在 docker-compose.yml 文件中的服务。

    2.3 访问 Miniflux Web 界面

    当部署完成后,你可以通过你的 Web 浏览器访问 http://localhost(如果 Docker 运行在本地)或者相应的服务器 IP 地址。

    首次登录时,你需要使用在 docker-compose.yml 文件中配置的管理员账户信息:

    • 用户名 (Username): admin
    • 密码 (Password): qixinlee.com

    登录后,你就可以开始添加你的 RSS 订阅源,享受简洁高效的阅读体验了。

    2.4 停止 Miniflux 服务

    如果你需要停止正在运行的 Miniflux 服务,可以在相同的终端窗口或导航到相同的目录后运行以下命令:

    docker compose down

    这条命令会停止并移除由 docker-compose up 命令创建的容器和服务。

  • Docker安装wiki.js知识共享平台

    通过 Docker 部署 Wiki.js 可以帮助团队快速建立起知识共享平台,Wiki.js 是一个现代化的、功能强大的 Wiki 引擎,基于 Node.js 开发,支持多种数据库(如 PostgreSQL 和 MySQL)。它提供了丰富的功能,包括实时协作、Markdown 支持、权限管理、搜索功能等,非常适合团队内部使用,帮助知识共享和文档管理。

    1. 安装Docker

    curl -fsSL https://get.docker.com -o get-docker.sh
    sh get-docker.sh

    2. 使用 Docker 部署 Wiki.js

    需要创建一个 docker-compose.yaml 文件,用于定义 Docker 服务的配置。

    nano docker-compose.yaml

    文件内容如下:

    services:
    
      db:
        image: postgres:15-alpine
        environment:
          POSTGRES_DB: wiki
          POSTGRES_PASSWORD: wikijsrocks
          POSTGRES_USER: wikijs
        logging:
          driver: none
        restart: unless-stopped
        volumes:
          - db-data:/var/lib/postgresql/data
    
      wiki:
        image: ghcr.io/requarks/wiki:2
        depends_on:
          - db
        environment:
          DB_TYPE: postgres
          DB_HOST: db
          DB_PORT: 5432
          DB_USER: wikijs
          DB_PASS: wikijsrocks
          DB_NAME: wiki
        restart: unless-stopped
        ports:
          - "80:3000"
    
    volumes:
      db-data:

    3. 启动容器

    通过 docker-compose 启动 Wiki.js 和 PostgreSQL 数据库:

    docker-compose up -d

    命令执行后,Docker 会下载必要的镜像并启动容器。

    Wiki.js 将绑定到主机的 80 端口
    你可以通过浏览器访问 http://<你的服务器 IP>:80 来完成 Wiki.js 的配置。

  • 使用Docker部署ONLYOFFICE 社区版文档服务器

    ONLYOFFICE 文档服务器是一款在线办公套件,包含文本、电子表格和演示文稿的查看器和编辑器,完全兼容 Office Open XML 格式:.docx、.xlsx、.pptx,并支持实时协作编辑。

    主要特点:

    • 实时协作:支持多人同时编辑同一个文档,提升团队协作效率。
    • 多种格式支持:兼容主流 Office 格式(如 .docx.xlsx.pptx),无缝处理不同类型的文件。
    • 跨平台支持:适用于 Windows、Linux、macOS 等多平台,方便部署和使用。
    • 高效文档管理:提供强大的文档查看、编辑、共享功能,适用于个人及小型团队使用。

    1. 克隆 ONLYOFFICE 社区版仓库

    首先,打开终端并克隆 ONLYOFFICE 的社区版 Docker 配置库:

    git clone https://github.com/ONLYOFFICE/Docker-CommunityServer

    2. 进入项目目录

    克隆完成后,进入项目目录:

    cd Docker-CommunityServer

    3. 启动 Docker 容器

    使用 docker-compose 启动 ONLYOFFICE 社区版文档服务器:

    docker-compose -f docker-compose.workspace.yml up -d

    4. 配置访问

    部署完成后,你可以通过访问服务器的 IP 地址或域名来使用 ONLYOFFICE 文档服务器。默认端口为 80,你可以在浏览器中输入服务器地址,例如:

    http://<服务器IP地址>/
  • Ubuntu24.04在本地搭建 Kubernetes 开发环境:Docker、Minikube 和 kubectl 安装与配置指南

    如何在本地环境中通过 Docker、Minikube 和 kubectl 构建一个 Kubernetes 集群。Kubernetes 是目前主流的容器编排平台,而 Minikube 提供了一个轻量级的本地集群环境,方便开发者和学习者进行实验和测试。

    1. 安装 Docker

    首先,您需要在系统中安装 Docker。运行以下命令以下载并安装 Docker:

    # 安装 Docker
    curl -fsSL https://get.docker.com -o get-docker.sh
    sudo sh get-docker.sh

    安装完成后,将普通用户添加到 docker 用户组中,以便无需使用 sudo 来运行 Docker 命令:

    # 配置普通用户加入到 docker 用户组
    sudo usermod -aG docker $USER

    执行以上命令后,您需要退出并重新登录才能使更改生效。

    2. 安装 Minikube

    Minikube 是用于在本地启动 Kubernetes 集群的工具。运行以下命令以安装 Minikube:

    curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64
    sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
    
    minikube version

    3. 安装 kubectl

    1. 更新系统软件包列表,并安装必要的依赖:
    sudo apt-get update
    sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
    1. 添加 Kubernetes 的 APT 仓库 GPG 密钥:
    curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
    sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg
    1. 配置 Kubernetes APT 仓库源:
    echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
    sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list
    1. 更新软件包列表并安装 kubectl
    sudo apt-get update
    sudo apt-get install -y kubectl

    4. 启动 Minikube

    安装完成后,启动 Minikube 集群:

    minikube start --driver=docker

    5. 验证安装

    使用以下命令检查 Minikube 和 kubectl 的状态:

    minikube status
    kubectl get nodes

    如果输出显示集群状态正常,Minikube 已成功启动。

    6. 常用 kubectl 命令

    • 查看所有命名空间中的所有 Pod:
    kubectl get pods --all-namespaces
    • 查看默认命名空间中的所有 Pod:
    kubectl get pods
    • 查看服务:
    kubectl get services
    • 查看集群节点:
    kubectl get nodes
    • 查看所有 Deployments:
    kubectl get deployments
    • 查看资源使用情况(如节点的 CPU、内存等):
    kubectl top nodes
    • 删除一个 Pod:
    kubectl delete pod <pod-name>
    • 启动一个新的 Pod(如运行一个 nginx 容器):
    kubectl run nginx --image=nginx

    7. 访问 Kubernetes Dashboard(可选)

    如果您想进行可视化管理,可以访问 Kubernetes Dashboard:

    minikube dashboard

    8. 测试 Nginx 部署

    1. 创建一个 Nginx 部署:
    kubectl create deployment nginx --image=nginx
    1. 将 Nginx 部署暴露到集群外部:
    kubectl expose pod nginx --type=NodePort --name=nginx-service --port=80
    1. 查看服务的端口分配:
    kubectl get services
    1. 获取 Minikube 的 IP 地址:
    minikube ip
    1. 使用浏览器测试 Nginx 服务:
    curl http://<IP>:<端口>

    9. 临时暴露端口供其他人访问,使用 kubectl port-forward 访问 Nginx

    1. 确保 Nginx Pod 正在运行:
    kubectl create deployment nginx --image=nginx
    1. 查找 Nginx Pod 的名称:
    kubectl get pods -l app=nginx
    1. 使用 kubectl port-forward 进行端口转发:
    kubectl port-forward --address 0.0.0.0 <pod-name> <host-port>:<container-port>

    例如,将本地的 8080 端口转发到 Nginx 容器的 80 端口:

    kubectl port-forward --address 0.0.0.0 nginx-5869d7778c-qdfr2 8080:80
    1. 保持终端窗口打开。
    2. 从外部访问 Nginx:
    http://<IP>:8080

    10. 注意事项

    • kubectl port-forward 端口转发是临时的,关闭终端窗口时会断开连接。
    • 使用 --address 0.0.0.0 将服务暴露到所有网络接口,确保在公共网络中谨慎使用。
    • Pod 故障时,需要重新执行端口转发命令。
  • 小型 WordPress 博客网站:Docker 轻装上阵,K8s 是否必要

    WordPress 无疑是一个强大且易用的选择。而随着容器化技术的普及,使用 Docker 或 Kubernetes 来部署 WordPress 成为了现代化的趋势。然而,面对这两种技术,你可能会感到困惑:我的小型博客网站,究竟应该选择轻巧的 Docker,还是功能强大的 Kubernetes 呢?

    容器化为小型 WordPress 博客带来的优势

    在探讨 Docker 和 Kubernetes 的选择之前,我们先来看看将你的小型 WordPress 博客容器化能带来哪些共同的益处:

    • 环境一致性: 容器确保了开发、测试和生产环境的统一,避免了因环境差异导致的问题。
    • 快速部署: 基于容器镜像可以快速部署和启动 WordPress 博客。
    • 资源隔离: 容器将 WordPress 应用及其依赖与宿主机和其他应用隔离开,提高了安全性。
    • 易于管理: 容器化的应用可以更方便地进行启动、停止、重启和删除等操作。

    方案一:简洁高效的选择——Docker (单容器或 Docker Compose)

    Docker 是一种轻量级的容器化技术,能够将应用程序及其所有依赖项打包到一个可移植的镜像中。对于小型 WordPress 博客,你可以选择将 WordPress 应用及其依赖(如 PHP、Web 服务器)打包在一个 Docker 容器中,或者更常见地使用 Docker Compose 来管理 WordPress 应用容器和 MySQL 数据库容器。

    为什么 Docker 更适合小型 WordPress 博客?

    • 学习曲线低: Docker 的概念和基本操作相对简单,容易上手,即使是技术新手也能快速掌握。Docker Compose 的配置也相对直观。
    • 部署快速便捷: 可以直接从 Docker Hub 拉取官方的 WordPress 和 MySQL 镜像,通过简单的命令或 docker-compose up 即可快速启动博客。
    • 资源占用小: 单个或少量的 Docker 容器资源占用非常小,非常适合资源有限的个人服务器或小型云主机。
    • 管理简单: 使用 dockerdocker-compose 命令即可完成日常的启动、停止、重启等管理任务,无需复杂的编排系统。
    • 成本低廉: 部署和运行 Docker 环境的成本相对较低,尤其适合预算有限的个人或小型团队。
    • 备份和恢复方便: 可以通过备份 Docker 卷(存储 WordPress 文件和数据库)来轻松备份和恢复博客数据。

    适用场景: 个人博客、访客量较小的网站、技术初学者、预算有限的场景。

    方案二:功能强大但可能“过度设计”的选择——Kubernetes (K8s)

    Kubernetes 是一个强大的容器编排平台,用于自动化部署、扩展和管理容器化的应用程序。它旨在处理大规模、复杂的容器化应用,提供高可用性、弹性伸缩、服务发现和负载均衡等高级功能。

    为什么 Kubernetes 对于小型 WordPress 博客可能不是最佳选择?

    • 学习曲线陡峭: Kubernetes 的架构和概念非常复杂,需要花费大量时间和精力去学习和理解 Pod、Deployment、Service、Ingress 等核心概念。
    • 部署和配置复杂: 部署一个 WordPress 博客到 Kubernetes 需要编写和管理多个 YAML 配置文件,配置过程相对繁琐。
    • 资源开销大: 即使只运行一个 WordPress 博客,也需要运行整个 Kubernetes 集群的控制平面和节点组件,资源开销远大于 Docker。
    • 运维成本高: 管理和维护 Kubernetes 集群需要专业的知识和技能,对于小型博客的维护成本较高。
    • 过度设计: 小型 WordPress 博客通常不需要 Kubernetes 提供的许多高级功能,例如自动水平伸缩、复杂的负载均衡策略等。这些功能反而会增加系统的复杂性。
    • 初始搭建耗时: 搭建一个可用的 Kubernetes 集群需要一定的时间和技术投入。

    适用场景(通常不适用于小型 WordPress 博客): 预计有极高流量、对高可用性和弹性伸缩有极致要求的 WordPress 站点;需要管理大量容器化应用的复杂系统。

    如何选择?小型博客的明智之选

    对于搭建小型 WordPress 博客网站而言,绝大多数情况下,使用 Docker (尤其是 Docker Compose) 是一个更明智、更经济、更易于管理的选择。 它能够满足小型博客对于环境一致性、快速部署和基本管理的需求,而不会引入 Kubernetes 的高复杂性和资源开销。

    只有在极少数情况下,你才可能考虑为小型 WordPress 博客使用 Kubernetes:

    • 你已经深入了解并熟练掌握 Kubernetes 技术,并且希望将其作为一个学习和实践的案例。
    • 你预见到你的小型博客未来可能会有爆发式的增长,并且希望提前为高可用和弹性伸缩做好准备(但这通常可以通过后期迁移来实现)。

    对于小型 WordPress 博客网站,Docker 就像一位轻便灵活的助手,能够轻松地完成任务。而 Kubernetes 则像一个功能强大的指挥中心,对于小型任务来说显得过于庞大和复杂。 因此,在大多数情况下,选择 Docker,特别是 Docker Compose,将能够让你更快速、更高效、更低成本地搭建并运行你的 WordPress 博客。将 Kubernetes 留给那些真正需要其强大编排能力的大型应用和高流量场景吧。