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

使用 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 帮助我们快速启动并管理多个容器,让部署过程变得更加简单和可维护。

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


http://www.kler.cn/a/565748.html

相关文章:

  • VMware虚拟机配置桥接网络
  • 滚珠螺杆镀铬的作用
  • 【Day50 LeetCode】图论问题 Ⅷ
  • C语言实现双向链表
  • django app中的models迁移问题根治方法
  • 【Kubernetes】污点和容忍
  • 交易积累-高频交易
  • 图像仿射变换
  • SOME/IP-SD -- 协议英文原文讲解7
  • PH热榜 | 2025-02-28
  • Python核心:Django的日志记录全方位解析
  • C语言入门资料分享源码+PDF速查手册
  • 小程序画带圆角的圆形进度条
  • 辛格迪客户案例 | 北京信立达医药科技有限公司药物警戒管理系统(PVS)项目
  • 帧中继+静态路由实验(大规模网络路由器技术)
  • 论文阅读之基于Syn2Real域的侧扫声纳类水雷目标探测
  • BigDecimal 为什么可以不丢失精度?
  • iOS自归因详细介绍
  • scala基础学习-闭包
  • Qt融合一个服务端连接多个客服端和一个客户端连接多个服务端程序