【Docker項目實戰】使用Docker部署輕量級LetsMarkdown文本編輯器

【Docker項目實戰】使用Docker部署輕量級Markdown文本編輯器

  • 一、LetsMarkdown介紹
    • 1.1 LetsMarkdown簡介
    • 1.2 主要特點
  • 二、本次實踐介紹
    • 2.1 本地環境規劃
    • 2.2 本次實踐介紹
  • 三、本地環境檢查
    • 3.1 檢查Docker服務狀態
    • 3.2 檢查Docker版本
    • 3.3檢查docker compose 版本
  • 四、拉取容器鏡像
  • 五、部署LetsMarkdown應用
    • 5.1 編輯docker-compose.yaml文件
    • 5.2 創建LetsMarkdown容器
    • 5.3 查看容器狀態
    • 5.4 關閉防火墻
  • 六、訪問項目
    • 6.1 訪問初始頁
    • 6.2 編輯文章
    • 6.3 分享鏈接
  • 七、總結

一、LetsMarkdown介紹

1.1 LetsMarkdown簡介

  • LetsMarkdown.com—— 快速、簡約的 Web 編輯器:

LetsMarkdown 是一款專注于提供高效、簡約的Markdown編輯體驗的Web編輯器。它支持實時協作編輯和預覽,讓Markdown編輯變得更加協作化和易于訪問。

1.2 主要特點

  1. 實時協作

    • 實現多人在線編輯Markdown文檔,促進團隊成員之間的即時溝通與協作。
  2. 類似 VSCode 的編輯體驗

    • 支持命令面板,提供語法高亮、自動完成等功能,并允許用戶自定義編輯器主題。
  3. 無需登錄的極簡設置

    • 用戶無需登錄即可使用,避免了惡意跟蹤器和隱私侵犯,保障用戶隱私安全。
  4. 高效的技術架構

    • 采用Rust語言和WebAssembly技術構建后端,確保編輯器的高性能和快速響應。
  5. 暗黑模式

    • 提供暗黑主題選項,減少眼睛疲勞,提升在夜間或昏暗環境下的使用體驗。
  6. 快捷鍵支持

    • 啟用快捷鍵后,支持快速插入表情符號,增強文檔的表現力和互動性。

二、本次實踐介紹

2.1 本地環境規劃

本次實踐為個人測試環境,操作系統版本為centos7.6。

hostnameIP地址操作系統版本Docker版本
ubuntu-001192.168.3.251Ubuntu 22.04.1 LTS24.0.7

2.2 本次實踐介紹

1.本次實踐部署環境為個人測試環境,生產環境請謹慎;
2.在Docker環境下輕量級Markdown文本編輯器。

三、本地環境檢查

3.1 檢查Docker服務狀態

檢查Docker服務是否正常運行,確保Docker正常運行。

root@ubuntu-001:~#  systemctl status docker
● docker.service - Docker Application Container EngineLoaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)Active: active (running) since Sun 2024-09-15 03:21:57 UTC; 4 days ago
TriggeredBy: ● docker.socketDocs: https://docs.docker.comMain PID: 24397 (dockerd)Tasks: 45Memory: 980.4MCPU: 1min 14.697sCGroup: /system.slice/docker.service├─24397 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

3.2 檢查Docker版本

檢查Docker版本,當前使用Docker版本為24.0.7

root@ubuntu-001:~#  docker -v
Docker version 24.0.7, build 24.0.7-0ubuntu2~22.04.1

3.3檢查docker compose 版本

檢查Docker compose版本,確保2.0以上版本。

root@ubuntu-001:~# docker compose version
Docker Compose version v2.19.1

四、拉取容器鏡像

拉取該項目的容器鏡像:cveinnt/letsmarkdown:latest

root@ubuntu-001:~# docker pull cveinnt/letsmarkdown:latest
latest: Pulling from cveinnt/letsmarkdown
cad51567b51c: Pull complete
46bc9dfa4ed4: Pull complete
Digest: sha256:fec103899bcbfa5a5fe637013ed6e01b4958e341d720324b3186e95782a0f570
Status: Downloaded newer image for cveinnt/letsmarkdown:latest
docker.io/cveinnt/letsmarkdown:latest

五、部署LetsMarkdown應用

5.1 編輯docker-compose.yaml文件

可以使用docker-cli快速部署,也可以使用docker compose方式部署,本次實踐使用docker compose方式部署。

  • docker-cli部署示例:
docker run --rm -dp 3030:3030 cveinnt/letsmarkdown

編輯docker-compose.yaml部署文件,內容如下:

vim docker-compose.yaml
version: '3.9'
services:letsmarkdown:image: cveinnt/letsmarkdownports:- '3030:3030'restart: alwayscontainer_name: markdownnote

5.2 創建LetsMarkdown容器

執行docker compose up -d命令,創建容器。注意需要保證宿主機端中的6223沒有被占用,防止端口沖突。

root@ubuntu-001:/data/letsmarkdown# docker compose up -d
[+] Running 2/2? Network letsmarkdown_default  Created                                                                                                               0.2s? Container markdownnote        Started                                                                                                               0.6s

在這里插入圖片描述

5.3 查看容器狀態

檢查LetsMarkdown容器狀態,確保LetsMarkdown容器正常啟動。

root@ubuntu-001:/data/letsmarkdown# docker compose ps
NAME                IMAGE                  COMMAND                  SERVICE             CREATED             STATUS              PORTS
markdownnote        cveinnt/letsmarkdown   "./letsmarkdown-serv…"   letsmarkdown        42 seconds ago      Up 40 seconds       0.0.0.0:3030->3030/tcp, :::3030->3030/tcp

5.4 關閉防火墻

在ubuntu系統下,關閉防火墻。

root@ubuntu-001:~/tower_game# ufw disable
防火墻在系統啟動時自動禁用
root@ubuntu-001:~/tower_game# ufw status
狀態:不活動

六、訪問項目

6.1 訪問初始頁

訪問地址:http://192.168.3.251:3030,將IP替換為自己服務器IP地址,進入進項目的初始頁。如果無法訪問,則檢查服務器防火墻是否設置,云服務器的安全組端口是否放行等。

在這里插入圖片描述

6.2 編輯文章

點擊初始頁的“ENTER”選項,進入文本編輯器。

在這里插入圖片描述

左側編輯文章內容,使用markdown語法,右側可以實時預覽。

在這里插入圖片描述

6.3 分享鏈接

復制分享鏈接,瀏覽文章效果。

在這里插入圖片描述

在這里插入圖片描述

七、總結

LetsMarkdown 作為一款 Web 編輯器,專注于提供高效且簡約的 Markdown 編輯體驗。其支持的實時協作編輯功能,讓多人共同創作變得高效流暢,團隊成員能同時操作并即時看到更改。實時預覽功能方便用戶及時查看編輯效果,有助于發現錯誤和調整格式。界面的簡約設計避免干擾,使用戶專注于內容創作。而且作為 Web 編輯器易于訪問,無需安裝,在各種設備上憑借網絡即可使用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/94342.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/94342.shtml
英文地址,請注明出處:http://en.pswp.cn/web/94342.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Node.js自研ORM框架深度解析與實踐

Node.js自研ORM框架深度解析與實踐 前言 在現代Web開發中,對象關系映射(ORM)框架扮演著至關重要的角色。它們為開發者提供了一層抽象,使得數據庫操作變得更加簡單和直觀。本文將深入解析一個基于Node.js和MySQL的自研ORM框架&…

匯總圖片拖進ps中 photoshop同時打開幾個文件夾

如果你有許多文件夾,你想選中一部分,然后把里面的圖片全部拖進photoshop當中,但是文件夾又不能直接拖進去,那么你可以嘗試使用一下這個工具,首先測試一下直接拖文件夾。選中你要處理的文件夾,直接拖進photo…

mysql 5.7 查詢運行時間較長的sql

開發過程遇到sql 執行時間長,又取消不了的情況 可使用 kill query ID 殺死進程獲取正在運行的sqlSELECT ID, -- 進程ID:MySQL服務器分配給每個連接的唯一標識符,用于區分不同的客戶端連接USER, …

MongoDB 從入門到實踐:全面掌握文檔型 NoSQL 數據庫核心操作

目錄 一、MongoDB 基礎準備 1. 官方資源獲取 2. 安裝步驟解析 二、MongoDB 核心指令詳解 1. 數據庫操作指令 2. 集合操作指令 3. 文檔操作指令 查詢文檔 插入文檔 修改文檔 刪除文檔 三、進階查詢技巧 1. 運算符的靈活運用 比較運算符 邏輯運算符 范圍與成員運算…

CVPR2025丨遙感領域,全模態與秒超高清遙感建模重大突破,性能提升創新點

關注gongzhonghao【CVPR頂會精選】剛入門遙感建模時,總好奇別人為什么總能提出新方法?慢慢摸索后才發現,創新點并不是硬憋出來的,而是要從數據特性、傳感器差異、地物細節以及環境變化中發現機會。不同波段、不同分辨率、不同時相…

HTML5詳篇

前端三劍客 前端三劍客是指HTML、CSS和JavaScript: HTML超文本標記語言(Hyper Text Markup Language):簡單理解描述網頁結構的;用于網頁內容的語言。它通過使用不同的HTML標簽來定義頁面中的各種元素,例如標題、段落、圖像、鏈接等【無羽毛的小鳥模型】 CSS層疊樣式表(…

【Transient-Free 3DGS】delayed densification + coarse to fine增加GS的魯棒性

25年最新連接去除場景瞬態對象工程與3DGS的pipeline,改進了spotlesssplats,已開源: [2506.02751] RobustSplat: Decoupling Densification and Dynamics for Transient-Free 3DGSAbstract page for arXiv paper 2506.02751: RobustSplat: De…

【MySQL】CRUD基礎詳解

CRUD基礎前言:數據庫的層級結構一、新增(Create)1. 單行數據 全列插入2. 單行數據的簡寫插入3. 指定列插入4. 多行數據插入二、查詢(Retrieve)1. 全列查詢2. 指定列查詢3. 查詢結果為表達式(1)…

互聯網大廠Java求職面試實錄:核心技術棧與業務場景解析

互聯網大廠Java求職面試實錄:核心技術棧與業務場景解析 面試場景設定 本文通過一個嚴肅的面試官和搞笑的水貨程序員大面條之間的對話,模擬互聯網大廠Java崗位的技術面試過程。面試涵蓋Java SE、Spring生態、數據庫、微服務、緩存、安全、消息隊列、AI等多…

response對象的elapsed屬性

在Python的requests庫中,當我們發送一個請求后,會得到一個Response對象,這個對象有一個elapsed屬性,它返回一個timedelta對象,表示從發送請求到收到響應所經過的時間。response.elapsed.total_seconds() 是 Python req…

【ansible】5.在受管主機部署文件和Jinja2模板

1.Ansible 中,如何用模塊創建一個文件并設置權限644并設置SELinux類型,如何從受管主機中刪除文件?使用ansible.builtin集合中的 file 模塊,添加state:touch 創建文件,mode:‘0644’ 設置權限&am…

雪花算法數據庫主鍵

雪花算法(Snowflake)作為一種分布式 ID 生成方案,在分布式系統中具有顯著優勢,能夠解決多個關鍵問題。以下是它的核心好處及主要應用場景:雪花算法的核心好處全局唯一性:通過時間戳、機器 ID、數據中心 ID …

C/C++ 頭文件命名約定

有的時候&#xff0c;在C的代碼中&#xff0c;可以看到有如下的頭文件引用的代碼: #include <iostream> #include <unistd.h> #include <csignal>其中有一些是引用了.h文件&#xff0c;另外一些是引用了模塊式的比如iostream和csignal&#xff0c;那么為什么…

異質結3.0時代的降本提效革命:捷造科技設備技術創新與產業拐點分析

光伏產業經歷了從PERC到TOPCon和異質結&#xff08;HJT&#xff09;的技術迭代&#xff0c;而2025年將成為異質結技術規模化應用的關鍵轉折點。捷造科技通過一系列突破性技術創新&#xff0c;將GW級異質結整線設備價格降至2億元&#xff0c;較行業平均水平降低約40%&#xff0c…

【網絡】http 協議中 Vary 標頭的作用

在 HTTP 協議中&#xff0c;Vary 標頭是一個關鍵的緩存控制機制&#xff0c;用于告知緩存服務器&#xff08;或代理&#xff09;&#xff1a;響應內容的生成依賴于請求中的哪些特定頭部字段。其核心作用是確保緩存服務器能根據這些字段的差異&#xff0c;正確區分和返回不同版本…

CSS 進階用法

一、選擇器進階復雜選擇器組合詳解后代選擇器后代選擇器使用空格分隔兩個選擇器&#xff0c;例如div p&#xff0c;表示選擇div元素內所有的p元素。這種選擇方式會匹配所有層級的后代元素&#xff0c;包括子元素、孫元素等任意深度的嵌套元素。應用示例&#xff1a;/* 選中arti…

GitHub 熱榜項目 - 日榜(2025-08-23)

GitHub 熱榜項目 - 日榜(2025-08-23) 生成于&#xff1a;2025-08-23 統計摘要 共發現熱門項目&#xff1a;13 個 榜單類型&#xff1a;日榜 本期熱點趨勢總結 本期GitHub熱榜呈現三大技術熱點&#xff1a;1&#xff09;AI工作流構建成為風口&#xff0c;sim和airi等項目展示…

SHAP分析+KOA-RIME開普勒結合霜冰算法雙重優化BP神經網絡+9種映射方法+新數據預測!機器學習可解釋分析!

代碼主要功能 該Matlab代碼實現了一個KOA-RIME開普勒結合霜冰算法雙重優化的BP神經網絡回歸模型&#xff0c;結合特征貢獻度分析&#xff08;SHAP&#xff09;和新數據預測功能。核心功能包括&#xff1a; 雙重參數優化&#xff1a;先用智能算法&#xff08;以chebyshev映射改進…

【數據結構】棧和隊列——棧

目錄棧和隊列棧棧的基本概念棧的順序存儲實現棧的定義與初始化入棧操作出棧操作讀取棧頂元素判空和判滿操作棧的銷毀操作操作集合棧和隊列 棧 棧的基本概念 棧的定義&#xff1a; 棧&#xff08;Stack&#xff09; 是一種線性表&#xff0c;它限定了數據元素的插入和刪除操…

大數據管理與應用系列叢書《數據挖掘》讀書筆記之集成學習(1)

文章目錄前言一、集成學習是什么&#xff1f;1.基本思想2.集成學習的類型3. 集成學習的結合策略3.1 為什么結合策略是集成學習的靈魂&#xff1f;3.2 經典策略(1)**投票法&#xff08;Voting&#xff09;****(2)平均法&#xff08;Averaging&#xff09;****(3) 學習法**3.3 關…