当前位置: 首页 > news >正文

使用 Docker 部署 Memos:简易教程

Memos 是一个简单而高效的自托管笔记应用,适合用来存储和管理你的笔记。今天,我将介绍如何使用 Docker 来部署 Memos,并连接到一个 MySQL 数据库。

前期准备

首先,确保你已经安装了 Docker 和 Docker Compose。如果没有,请按照官方文档的步骤进行安装。

编写 docker-compose.yml

在部署 Memos 前,我们需要编写一个 docker-compose.yml 文件,配置相关的服务。

services:
  memos:
    image: neosmemo/memos:stable
    container_name: memos
    restart: always
    networks:
      - memos_network
    volumes:
      - ./memos/:/var/opt/memos
    ports:
      - "5230:5230"
    environment:
      - MEMOS_DRIVER=mysql
      - MEMOS_DSN=账号:密码@tcp(IP地址:3306)/数据库名
      - TZ=Asia/Shanghai

networks:
  memos_network:
    driver: bridge

配置解释

  1. image: neosmemo/memos:stable
    使用官方 Memos 镜像,这里指定了稳定版。

  2. container_name: memos
    设置容器名称为 memos,你可以根据需要修改。

  3. restart: always
    配置容器重启策略,确保 Docker 重启时容器能够自动重启。

  4. volumes: ./memos/:/var/opt/memos
    映射宿主机目录 ./memos/ 到容器的 /var/opt/memos,确保 Memos 的数据能够持久化存储。

  5. ports: "5230:5230"
    映射容器的端口 5230 到宿主机的同一端口,你可以通过 http://localhost:5230 来访问 Memos。

  6. environment
    设置环境变量:

    • MEMOS_DRIVER=mysql 指定数据库驱动为 MySQL。

    • MEMOS_DSN=账号:密码@tcp(IP地址:3306)/数据库名 配置数据库连接字符串。将 账号密码IP地址数据库名 替换为你的实际数据库信息。

    • TZ=Asia/Shanghai 设置时区为上海。

  7. networks
    配置 Docker 网络,使用 bridge 驱动确保容器可以通过网络互联。

启动 Memos 服务

完成 docker-compose.yml 文件后,在终端中进入该文件所在目录,执行以下命令启动 Memos 容器:

docker-compose up -d

此命令将后台运行 Memos 容器。你可以通过访问 http://localhost:5230 来查看 Memos 应用是否成功启动。

配置 MySQL 数据库

Memos 默认使用 MySQL 作为数据库,如果你已经搭建了 MySQL 数据库,确保数据库配置正确。如果你还没有 MySQL 数据库,你可以使用 Docker 部署一个 MySQL 实例。下面是一个简单的 MySQL 服务配置:

services:
  mysql:
    image: mysql:5.7
    container_name: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root_password
      MYSQL_DATABASE: memos_db
    ports:
      - "3306:3306"
    networks:
      - memos_network

通过 docker-compose up -d 启动 MySQL 服务后,确保 Memos 配置中的数据库信息正确无误。

访问 Memos

配置完成后,打开浏览器并访问 http://localhost:5230,你将看到 Memos 的登录页面。如果一切正常,你就可以开始使用 Memos 来管理你的笔记了。

总结

通过使用 Docker 部署 Memos,我们可以非常方便地将这个笔记管理工具在本地或服务器上进行自托管。Docker Compose 帮助我们快速启动并管理多个容器,让部署过程变得更加简单和可维护。

希望这个教程对你有所帮助,如果你有任何问题,欢迎留言讨论!

相关文章:

  • 三维建设项目管理网站seo网站推广经理招聘
  • 百度做任务的网站百度网站排名搜行者seo
  • 南昌专业做网站的东莞seo搜索
  • 外贸公司都是在什么网站做推广营销活动推广策划
  • 电影天堂网站用什么程序做的2023网络营销成功案例
  • 网站建设归工商局管还是工信局管如何提高搜索引擎优化
  • 解释Promise的工作原理及其状态
  • 计算机毕业设计SpringBoot+Vue.js作业管理系统(源码+文档+PPT+讲解)
  • Java中字符串替换的方法
  • Java 网络八股 TCP协议:三次握手四次挥手全图解
  • Opencv 图像形态学操作
  • VC++ MFC中 CTreeCtrl的自绘
  • 使用create_sql_query_chain工具根据自然语言问题生成SQL查询,踩坑版
  • 浙江大学《数据结构》第一章 笔记
  • 新时代,科技助力运动旅游开启新潮流
  • ESP32-S3 42引脚 语音控制模块、设备运转展示 GOOUUU TECH 果云科技S3-N16R8 控制舵机 LED开关 直流电机
  • 更换k8s容器运行时环境为docker
  • git 常用指令
  • dify镜像拉取不下来如何解决
  • 【分布式锁通关指南 05】通过redisson实现分布式锁
  • 【AIGC系列】5:视频生成模型数据处理和预训练流程介绍(Sora、MovieGen、HunyuanVideo)
  • 基于 Ray 构建的机器学习平台
  • 处理大数据的架构模式:Lambda 架构 和 Kappa 架构
  • 防火墙的智能选路与NAT实验
  • Qt 中 **QGraphicsView** 框架的总结
  • 【大模型系列篇】DeepSeek开源周,解锁AI黑科技