【云原生之Docker实战】使用Docker部署flatnotes笔记工具

2023-11-09

一、flatnotes介绍

1.1 flatnotes简介

flatnotes 是一个自托管的、无数据库的笔记 Web 应用程序,它利用文件夹存储 Markdown 文件。

1.2 flatnotes特点

  • 移动响应式web界面。

  • 原始/所见即所得标记编辑器模式。

  • 高级搜索功能。

  • 注意“标记”功能。

  • 浅色/深色主题。

  • 多个身份验证选项(无、只读、用户名/密码、2FA)。

  • Restful API。

二、本地环境介绍

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为centos7.6。

hostname IP地址 操作系统版本 Docker版本
jeven 192.168.3.166 centos 7.6 20.10.17

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎使用;
2.在Docker环境下成功部署flatnotes笔记工具。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

[root@jeven ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2023-08-23 23:41:16 CST; 1 weeks 1 days ago
     Docs: https://docs.docker.com
 Main PID: 9562 (dockerd)
    Tasks: 50
   Memory: 1.4G
   CGroup: /system.slice/docker.service

3.2 检查Docker版本

检查Docker版本

[root@jeven ~]# docker version
Client: Docker Engine - Community
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:05:12 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:03:33 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc:
  Version:          1.1.2
  GitCommit:        v1.1.2-0-ga916309
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

[[root@jeven ~]# docker compose version
Docker Compose version v2.19.1

四、下载flatnotes镜像

从docker hub下载flatnotes镜像

[root@jeven ~]# docker pull  dullage/flatnotes
Using default tag: latest
latest: Pulling from dullage/flatnotes
1d5252f66ea9: Pull complete
eefb43356e06: Pull complete
c26db0eb1f01: Pull complete
300843d99304: Pull complete
daddf7df59b6: Pull complete
fd5b7d323a9e: Pull complete
956d12ab1aba: Pull complete
3a27da5a148e: Pull complete
9bc9c825c797: Pull complete
4f4fb700ef54: Pull complete
2dff9aeca767: Pull complete
745990a309e1: Pull complete
cf33157fe535: Pull complete
1f4f074b255f: Pull complete
042bd107273a: Pull complete
Digest: sha256:666b237abff5a16d781ee7f06ccdadef9e42951de3ec320a071407a9e85666ef
Status: Downloaded newer image for dullage/flatnotes:latest
docker.io/dullage/flatnotes:latest

五、部署flatnotes笔记工具

5.1 创建目录

新建挂载目录

mkdir -p /data/flatnotes/data   && cd /data/flatnotes/
  • 目录授权
 chmod -R 777 /data/flatnotes/

5.2 使用docker-cli部署

使用docker-cli命令部署flatnotes笔记工具

  • 生成随机KEY
[root@jeven flatnotes]# cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 24 | head -n 1
Nl1rQmfg4gsnJfBfsmkXOo7G
docker run -d \
   --restart unless-stopped \
   --name flatnotes \
   -p "28880:8080" \
   -v "/data/flatnotes/data:/data" \
   -e "FLATNOTES_AUTH_TYPE=password" \
   -e "FLATNOTES_USERNAME=admin" \
   -e "FLATNOTES_PASSWORD=admin" \
   -e "FLATNOTES_SECRET_KEY=Nl1rQmfg4gsnJfBfsmkXOo7G" \
   -e "PORT=8080" \
  dullage/flatnotes:latest

5.3 编辑docker-compose.yaml文件

编辑docker-compose.yaml文件

version: '3'

services:
  flatnotes:
    image: dullage/flatnotes:latest
    container_name: flatnotes
    restart: always
    ports:
      - 28880:8080
    volumes:
      - /data/flatnotes/data:/data
    environment:
      - FLATNOTES_AUTH_TYPE=password
      - FLATNOTES_USERNAME=admin
      - FLATNOTES_PASSWORD=admin
      - FLATNOTES_SECRET_KEY=Nl1rQmfg4gsnJfBfsmkXOo7G
      - PORT=8080

5.4 部署flatnotes

使用docker compose快速部署flatnotes


[root@jeven flatnotes]# docker compose up -d
[+] Running 2/2
 ⠿ Network flatnotes_default  Created                                                                                                                                     0.1s
 ⠿ Container flatnotes        Started                                                                                                                                     0.4s

5.5 检查容器状态

检查容器状态

[root@jeven flatnotes]# docker ps
CONTAINER ID   IMAGE                      COMMAND            CREATED          STATUS          PORTS                                         NAMES
23eebd85b174   dullage/flatnotes:latest   "/entrypoint.sh"   13 seconds ago   Up 13 seconds   0.0.0.0:28880->8080/tcp, :::28880->8080/tcp   flatnotes

5.6 检查flatnotes容器日志

检查flatnotes容器日志,确保服务正常运行。

[root@jeven flatnotes]# docker logs flatnotes
Setting up user and group...
Adding group `flatnotes' (GID 1000) ...
Done.
Adding user `flatnotes' ...
Adding new user `flatnotes' (1000) with group `flatnotes' ...
Creating home directory `/home/flatnotes' ...
Copying files from `/etc/skel' ...
Setting file permissions...
WARNING: Breaking changes introduced in version 3.x:
  - The port flatnotes uses inside the Docker container has been changed to 8080 (previously 80).
  - To accompany the above change, support for the PORT environment variable has been removed.
  - The note directory inside the Docker container has moved from /app/data to simply /data.
Starting flatnotes...
2023-09-01 10:22:51 [INFO]: Creating new index
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)

六、访问flatnotes

6.1 进入flatnotes登录页

访问地址:http://192.168.3.166:28880
将IP地址替换为自己服务器的IP地址

在这里插入图片描述

6.2 访问flatnotes首页

账号密码为自定义设置的admin/admin

在这里插入图片描述

七、flatnotes的基本使用

7.1 新建笔记

  • 点击右上角的new,新建笔记。

在这里插入图片描述

7.2 编辑笔记内容

编辑笔记内容,使用markdown格式。

在这里插入图片描述

7.3 预览笔记内容

点击预览笔记内容

在这里插入图片描述

7.4 保存笔记内容

保存笔记内容

在这里插入图片描述

7.5 查看首页笔记

回到首页,可以看到显示刚才编辑保存的笔记。

在这里插入图片描述

7.6 查看文件存储

在挂载目录/data/flatnotes/data上,可以看到刚才编辑保存的笔记文件。

[root@jeven data]# pwd
/data/flatnotes/data
[root@jeven data]# ls -l
total 8
-rw-r--r--. 1 admin admin 5680 Sep  1 18:52 Linux系统之普通用户sudo提权配置.md
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【云原生之Docker实战】使用Docker部署flatnotes笔记工具 的相关文章

  • 在 docker run 中发布 8080:80 和 8080:8080 有什么区别?

    我正在尝试运行詹金斯容器 我使用 docker run restart always name myjenkins p 8080 80 jenkins 但无法访问 jenkinshttp 本地主机 8080 http localhost 8
  • 如何从 docker 容器在主机上运行 shell 脚本?

    如何从docker容器控制主机 例如 如何执行复制到主机的bash脚本 这个答案只是一个Bradford Medeiros 解决方案的更详细版本 这对我来说也是最好的答案 所以功劳归于他 在他的回答中 他解释了该怎么做 命名管道 但不完全是
  • `docker-compose up` 与使用环境变量的 `docker compose up`

    我正在尝试使用 Docker Compose 将三节点 Elasticsearch 集群部署到 Azure 容器实例 我松松地跟随这个例子 https www elastic co guide en elasticsearch refere
  • Docker 进程被神秘的“Killed”消息杀死

    在 docker 容器中运行 python 脚本 一切似乎都运行顺利 看到一些 STDOUT 消息 大约 5 分钟后我得到了Killed消息 没有进一步的解释 并且该过程停止 查询数据库可能是磁盘空间问题 也可能是 OOM 问题 我不确定
  • Docker容器内的动态监听端口

    我有一个应用程序 在使用其默认端口建立一些连接后 开始打开 侦听 新的随机端口来处理现有连接 然后删除它们 视频通话 它还在通信协议内交换其IP地址和端口 我能够解决IP地址问题 但仍然无法找到一种方法来动态告诉主机的IPTABLES在Do
  • 在 pip 中为 Flask 应用程序构建 docker 映像失败

    from alpine latest RUN apk add no cache python3 dev pip3 install upgrade pip WORKDIR backend COPY backend RUN pip no cac
  • 当 docker 停止时运行脚本

    我正在尝试使用 dockerfile 创建 docker 容器 其中 script entry sh 将在容器启动时执行 而 script exit sh 将在容器停止时执行 ENTRYPOINT 帮助解决了 script entry sh
  • 恐慌:拨打 tcp 127.0.0.1:3306:连接:连接被拒绝

    我正在尝试使用 golang gin gorm 从 docker 连接 mysql 服务器 构建本身已经成功 但是如标题所示 出现了以下错误 panic dial tcp 127 0 0 1 3306 connect connection
  • 限制docker容器内的系统调用

    如何限制 docker 容器内进行的任何系统调用 如果给定进程进行系统调用 它将被阻止 或者我如何将 seccomp 与 docker 一起使用 您可以在 Docker 的 Seccomp 安全配置文件 https github com d
  • Node.js 连接到 MySQL Docker 容器 ECONNREFUSED

    在将此问题标记为重复之前 请注意我确实阅读了其他答案 但它并没有解决我的问题 我有一个包含两个服务的 Docker compose 文件 version 3 services mysql image mysql 5 7 environmen
  • 如何在docker compose中运行mongodb副本集

    我尝试在我的 Mac 中使用 mongodb community 在本地运行 mongodb 副本集MongoDB 文档 https docs mongodb com manual tutorial convert standalone t
  • 如何在 minikube VM 中挂载 Host 文件夹

    我有一个用例 我需要 kubernetes 下的 Docker 容器来访问主机路径 我使用的是 minikube 容器能够访问 minikube VirtualBox VM 中的文件夹 但我不知道如何让它访问主机本身上的文件夹 我在主机上执
  • 如何在 docker (DIND) 内运行 docker 容器?

    我正在尝试使用 docker inside docker 在另一个容器中运行一个容器https hub docker com docker https hub docker com docker 当我运行以下命令时 docker run p
  • 连接到在 Docker 中运行的 HBase

    我无法连接到 Windows 上 Docker 中运行的 HBase banno hbase 独立 https registry hub docker com u banno hbase standalone 图像 但是 我可以连接到本地安
  • Docker镜像删除后占用空间

    我提交了一个现有的 Docker 容器来创建新镜像 但提交的镜像太大了 原始镜像为 3 GB 并且在容器中安装了一些其他内容 提交的镜像为 8 GB 我的空间不足 所以我决定删除提交的映像 但即使删除提交的映像后 我的磁盘空间也没有增加 然
  • 如何合并Docker的各层镜像并瘦身镜像文件

    docker image inspect
  • 将 Docker 与 AWS Elastic Beanstalk 结合使用有哪些优势?

    我在AWS Elastic Beanstalk上部署了几个网站 然后我听说了Docker 所以我想这次我可以尝试一下小型企业电子商务网站 Lumen Angularjs 网上查遍了 由于没有使用Docker的经验 还是很难 深入了解在 AW
  • 如何在minikube中创建多个集群

    我需要在 minikube 中创建额外的集群 我搜索了一段时间没有找到任何这方面的资源 如何在 minikube 中创建集群 创建第一个名为cluster 1 minikube start p cluster 1 创建第二个集群 名称为cl
  • 在官方 Postgres docker 镜像中记录所有查询

    我有一个基于 Postgres 官方 docker 镜像的 docker 容器 当我使用查看 docker 容器的日志时 我想看到传入的查询docker logs f 这是我的 Dockerfile FROM postgres 11 1 a
  • Windows 8.1可以安装Docker吗?

    我想使用 Docker 将带有 NET Core 3 1 的 Web 应用程序部署到 Heroku 我下载了它 然后告诉我应该使用 Windows 10 适用于 Windows 的 Docker 需要 Windows 10 如果您使用 Wi

随机推荐

  • Android Camera HAL3中预览preview模式下的控制流

    本文均属自己阅读源码的点滴总结 转账请注明出处谢谢 欢迎和大家交流 qq 1037701636 email gzzaigcn2009 163 com Software 系统源码Android5 1 Camera3研读前沿 当初在研读Came
  • 焦距物距像距图解 示意图_自制小孔成像装置 鞋盒DIY简单小孔成像制作图解

    两千多年前 我国的学者墨子和他的学生 做了世界上第一个小孔成像的实验 他的做法是 在一间黑暗的屋子里 一面墙上开一个小孔 小孔对面的墙上就会出现外面景物的倒像 我们要重复这个实验 当然不需要专门造一间没有窗户的屋子 甚至不需要任何专门的器材
  • 13种架构设计模式(常用)

    13种常用架构设计模式 适配器模式 策略模式 观察者模式 原型 外观模式 装饰模式 工厂模式 抽象工厂模式 桥接模式 代理模式 单例模式 备忘录模式 生成器模式 命令模式 组合模式
  • UE4透明粒子距离场碰撞随机分布解决方案

    由于景深碰撞不能应用于透明物体 因此试了一下UE4的距离场碰撞 效果还可以接受 但是发现发射器的Collision中Random Spread和Random Distribution参数都失效了 粒子只能按照法线做反弹 检查源码发现Coll
  • 【2022年高教杯数学建模】C题:古代玻璃制品的成分分析与鉴别方案及代码实现(二)

    问题二 根据附件数据分析高钾玻璃 铅钡玻璃的分类规律 对于每个类别选择合适的化学成分对其进行亚类分析 给出具体的划分方法以及划分结果 并对分类结果的合理性和敏感性进行分析 1 问题2的分析 题目要求我们探究高钾玻璃和铅钡玻璃的分类规律 并对
  • DOM元素三大系列

    offset元素偏移量 获取元素距离带有定位父元素的位置 获取元素自身的大小 宽度高度 返回的数组不带单位 offset常用属性 element offsetParent 返回作为该元素带有定位的父级元素 如果父级没有定位则返回body e
  • The Standard Template Library___CH_21

    21 1 The Standard Library The Standard Library The Standard library contains a collection of classes that provide templa
  • c#获取MySql表中数据

    using MySql Data MySqlClient 引入MySql Data dll public static Dictionary
  • 从原理聊JVM(一):染色标记和垃圾回收算法

    1 JVM运行时内存划分 1 1 运行时数据区域 方法区 属于共享内存区域 存储已被虚拟机加载的类信息 常量 静态变量 即时编译器编译后的代码等数据 运行时常量池 属于方法区的一部分 用于存放编译期生成的各种字面量和符号引用 JDK1 8之
  • 常见聚类算法及使用--均衡的迭代并减少聚类中心的层次聚类(BIRCH)

    前言 前面文章给大家介绍了 关于层次聚类算法的实现 那么本文给大家继续介绍层次聚类的优化算法 BIRCH 大家都知道像 K means 这样的聚类算法比较有局限性 而且在大数据场景下很难处理 特别是在有限的内存和较慢的CPU硬件条件下 我相
  • 安装/使用 pycurl 遇到的问题

    记录下安装 pycurl 出现的问题 问题3 ImportError pycurl libcurl link time ssl backend openssl is different from compile time ssl back
  • C语言指针总结

    文章目录 0 前言 1 指针的定义 2 指针的运算 3 指针与数组 3 1 数组指针 指向数组的指针 3 2 指针数组 4 指针与字符 5 指针与结构体 6 指针与const 常量指针与指针常量 6 1 指针常量 Constant Poin
  • 前端每日十题,题目答案来自(每日三加一网站)。

    2022 1 18 今日题目来源http www h camel com index html 每日三加一 答案选择评论区好的 同时写出自己的答案 转载加学习 加油 1 html 页面导入样式时 使用link和 import有事么区别 区别
  • 【牛客网刷题】VL8-VL10 generate for语句、比较数大小、function的使用

    写在前面 本系列博客记录牛客网刷题记录 日拱一卒 功不唐捐 目录 VL8 使用generate for语句简化代码 题目描述 输入描述 输出描述 RTL 设计 testbench 设计 仿真测试 VL9 使用子模块实现三输入数的大小比较 题
  • 软件测试度量的关键指标,软件测试度量指标简介

    1 测试度量的目的 测试度量活动首要考虑的是目的 测试中的度量一般有如下目的 判断测试的有效性 判断测试的完整性 判断工作产品的质量 分析和改进测试过程 2 度量内容 度量的数据构成一个层次化的体系 就是度量框架 框架的上层是度量指标 Fa
  • code embedding研究系列一-基于token的embedding

    Code Embedding系列 token embedding 1 Automated software vulnerability detection with machine learning 数据集来源 数据集预处理 分类方法 获取
  • Keepalived与HaProxy的协调合作原理分析

    Keepalived与HaProxy的协调合作原理分析 keepalived与haproxy合作场景 更好的理解方式 协调合作中考虑的问题 一 Keepalived 以TCP IP模型角度来分析 二 HaProxy 总结 协调合作中考虑的问
  • GoLang项目开发基础

    一 GOROOT GOROOT指的Golang语言的安装路径 即Golang语言内置程序库所在的位置 通常在安装时环境变量会设置好GOROOT路径 当开发时 import标准库时并不需要额外安装 当程序运行后 也会去GOROOT路径下寻找相
  • 11款插件让你的Chrome成为全世界最好用的浏览器|Chrome插件推荐

    文章来源 知乎 收录于 风云社区 SCOEE 提供mac软件下载 更多专题 可关注小编 微学徒 查看我的文章 也可上 风云社区 SCOEE 查找和下载相关软件资源 一 综合类 新买苹果电脑 mac系统中小白应该了解哪些东西 Mac新手必看教
  • 【云原生之Docker实战】使用Docker部署flatnotes笔记工具

    云原生之Docker实战 使用Docker部署flatnotes笔记工具 一 flatnotes介绍 1 1 flatnotes简介 1 2 flatnotes特点 二 本地环境介绍 2 1 本地环境规划 2 2 本次实践介绍 三 本地环境