【Docker项目实战】使用Docker部署Memory笔记应用程序
一、Memory 介绍
1.1 Memory 简介
Memory 是一个自托管的编辑器和笔记应用程序,旨在提供简洁、高效的用户体验。它专注于通过简化用户界面和增强键盘快捷键支持来提升工作效率。Memory 允许用户轻松创建和管理文件夹及笔记,并提供了丰富的文本格式化选项和媒体处理功能。所有数据都存储在本地的
/notes
目录下,确保用户的数据安全和隐私。
1.2 主要特点
- 简洁的用户界面:
- 没有不必要的按钮,保持界面干净整洁。
- 仅使用
<enter>
键即可完成文件夹和笔记的创建,操作简便直观。
- 快速创建内容:
- 新文件夹:输入文件夹名称后按
<enter>
即可创建新文件夹。 - 新笔记:输入标题、选择文件夹并输入字幕后按
<enter>
创建新笔记。
- 新文件夹:输入文件夹名称后按
- 内置键盘快捷键:
- 提供一系列便捷的键盘快捷键,以加快工作流程:
<Ctrl-s>
:保存当前编辑的内容。<Ctrl-b>
:加粗选中的文本。<Ctrl-i>
:斜体选中的文本。<Ctrl-u>
:为选中的文本添加下划线。<Ctrl-h>
:高亮选中的文本。
- 提供一系列便捷的键盘快捷键,以加快工作流程:
- 自动格式化粘贴的URL:
- 支持粘贴URL(如 YouTube 视频链接或图像链接)时自动进行格式化,方便用户直接嵌入多媒体内容。
- 本地媒体存储:
- 所有媒体文件(如图片、视频等)均存储在本地的
/notes
目录下,确保数据的安全性和隐私性。
- 所有媒体文件(如图片、视频等)均存储在本地的
- 高效的工作流:
- 通过简洁的UI设计和强大的快捷键组合,Memory 使用户能够更高效地创建、编辑和管理笔记。
- 自动保存功能减少了手动保存的步骤,提高了工作效率。
- 自托管解决方案:
- 用户可以自行托管 Memory 应用程序,完全掌控数据存储和访问权限,进一步保障了数据的安全性和隐私。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为|Ubuntu 22.04.1。
hostname | IP地址 | 操作系统版本 | Docker版本 | 部署项目 |
---|---|---|---|---|
jeven01 | 192.168.3.88 | Ubuntu 22.04.1 LTS | 27.1.1 | Memory |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署Memory笔记应用程序。
三、本地环境检查
3.1 检查Docker服务状态
代码语言:bash复制检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven01:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2024-11-01 00:45:50 CST; 2 weeks 4 days ago
Docs:
Main PID: 10450 (dockerd)
Tasks: 60 (limit: 9387)
Memory: 1.8G
CPU: 33min 54.335s
CGroup: /system.slice/docker.service
3.2 检查Docker版本
代码语言:bash复制检查Docker版本
root@jeven01:~# docker -v
Docker version 27.1.1, build 6312585
3.3 检查docker compose 版本
代码语言:bash复制检查Docker compose版本,确保2.0以上版本。
root@jeven01:~# docker compose version
Docker Compose version v2.19.1
四、构建镜像
4.1 拉取项目
- 执行以下项目,拉取Memory项目。
git clone .git
cd memory
4.2 查看项目内容
代码语言:bash复制进入Memory目录后,查看内容如下所示:
root@jeven01:~/Memory# ll
total 1068
drwxr-xr-x 6 root root 4096 Mar 13 11:02 ./
drwx------ 12 root root 4096 Mar 13 11:02 ../
-rw-r--r-- 1 root root 8292 Mar 13 11:02 app.py
-rw-r--r-- 1 root root 176 Mar 13 11:02 Dockerfile
-rw-r--r-- 1 root root 678492 Mar 13 11:02 editor-img.png
drwxr-xr-x 8 root root 4096 Mar 13 11:02 .git/
-rw-r--r-- 1 root root 332147 Mar 13 11:02 home-img.png
-rw-r--r-- 1 root root 1063 Mar 13 11:02 LICENSE-CODE
drwxr-xr-x 2 root root 4096 Mar 13 11:02 notes/
-rw-r--r-- 1 root root 24576 Mar 13 11:02 notes.db
-rw-r--r-- 1 root root 2728 Mar 13 11:02 README.md
-rw-r--r-- 1 root root 24 Mar 13 11:02 requirements.txt
drwxr-xr-x 6 root root 4096 Mar 13 11:02 static/
drwxr-xr-x 2 root root 4096 Mar 13 11:02 templates/
4.3 构建镜像
- 构建Memory容器镜像
docker build -t memory .
- 可直接选择我已经构建好的镜像,执行以下命令下载即可。
root@jeven01:~/Memory# docker pull registry-hangzhou.aliyuncs/jeson/memory:latest
latest: Pulling from jeson/memory
Digest: sha256:8add132890b78a74cbf51b25c63f9f08ac45acfbb2582d8af7309d11ba2f6d1e
Status: Image is up to date for registry-hangzhou.aliyuncs/jeson/memory:latest
registry-hangzhou.aliyuncs/jeson/memory:latest
五、部署Memory应用
5.1 编辑部署文件
代码语言:bash复制如果使用docker-cli部署,可参考以下命令:
docker run -d \
--restart always \
--name memory\
-p 5100:5000 \
registry-hangzhou.aliyuncs/jeson/memory:latest
代码语言:bash复制在`部署目录下,创建docker-compose.yaml文件,如下所示:
vim docker-compose.yaml
代码语言:yaml复制version: '3.9'
services:
jeson:
image: 'registry-hangzhou.aliyuncs/jeson/memory:latest'
volumes:
- '/data/memory:/notes'
ports:
- '5100:5000'
container_name: memory
restart: always
5.3 创建Memory容器
代码语言:bash复制执行以下命令,创建Memory容器。
root@jeven01:~/Memory# docker compose up -d
[+] Running 2/2
✔ Network memory_default Created 0.1s
✔ Container memory Started 0.2s
5.4 查Memory容器状态
代码语言:bash复制检查Memory容器状态状态,确保Memory容器正常启动。
root@jeven01:~/Memory# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
memory registry-hangzhou.aliyuncs/jeson/memory:latest "python app.py" jeson 27 seconds ago Up 26 seconds 0.0.0.0:5100->5000/tcp, :::5100->5000/tcp
5.5 检查容器日志
代码语言:bash复制检查Memory容器日志,确保Memory服务正常启动。
root@jeven01:~/Memory# docker compose logs
memory | * Serving Flask app 'app'
memory | * Debug mode: off
memory | WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
memory | * Running on all addresses (0.0.0.0)
memory | * Running on http://127.0.0.1:5000
memory | * Running on http://172.26.0.2:5000
memory | Press CTRL+C to quit
六、访问Memory服务
6.1 访问Memory初始页
请访问
http://<个人的服务器IP>:5100
查看Memory的初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。
6.2 新建文档目录
新建文件夹:在填写好文件夹名称后,按回车键确认创建即可。
6.3 编辑文档
点击“New note”选项,开始创建笔记。输入文档名称和描述后,按回车键确认即可。
编辑文档内容:点击编辑按钮,进入文档编辑模式。文档或笔记完成后,点击保存即可。
七、总结
通过本次实战,我们成功使用 Docker 部署了 Memory 笔记应用程序,并体验了其简洁高效的用户界面和强大的功能集。尽管当前版本已经能够满足基本的笔记管理和内容创作需求,但仍有一些功能和用户体验上的改进空间,例如增强团队协作功能和支持更多的文件格式。期待后续版本能带来更多实用的功能和优化,进一步提升用户的使用体验。
发布评论