[Практика проекта Docker] Использование Docker для развертывания облегченного инструмента для создания заметок Mininote
[Практика проекта Docker] Использование Docker для развертывания облегченного инструмента для создания заметок Mininote

1. Знакомство с Mininote

1.1 Знакомство с Mininote

Mininote — это простое, автономное и зашифрованное приложение для создания заметок Markdown, созданное с помощью Vue 3 и Express.

1.2 Сценарии использования Mininote

  • Личные заметки: Mininote предоставляет простой интерфейс, который позволяет легко писать личные заметки. Вы можете использовать синтаксис Markdown для форматирования текста, а также сохранять и редактировать свои заметки в любое время.
  • Запись дневника: Mininote можно использовать как приложение-дневник, вы можете каждый день записывать свое настроение, мысли и повседневную деятельность. Каждый дневник можно сохранить в виде документа Markdown, который вам удобно сохранять и просматривать в течение длительного времени.
  • Управление проектом. Если вы работаете над проектом, Mininote может помочь вам записывать ход выполнения проекта, списки задач и заметки. Вы можете создавать несколько заметок для организации различных проектов и использовать теги или папки для их классификации и хранения.
  • Учебные заметки: независимо от того, изучаете ли вы новые знания или просматриваете старые знания, Mininote — отличный инструмент. Вы можете создавать различные блокноты для организации и записи учебного контента, а синтаксис Markdown поможет вам лучше организовать и представить ваши заметки.
  • Совместная работа в команде. Если у вас небольшая команда или партнеры, Mininote можно использовать как простой инструмент для совместной работы. Вы можете создать общий блокнот, чтобы члены команды могли редактировать и комментировать заметки. Ваши заметки могут храниться в зашифрованном виде, чтобы защитить вашу конфиденциальность.

2. Знакомство с местной средой

2.1 Планирование местной окружающей среды

Эта практика представляет собой личную тестовую среду, а версия операционной системы — centos7.6.

hostname

IP-адрес

Версия операционной системы

Докер-версия

jeven

192.168.3.166

centos 7.6

20.10.17

2.2 Введение в эту практику

1. Среда развертывания для этой практики — это персональная тестовая среда, будьте осторожны в производственной среде;

2. Разверните облегченный инструмент для создания заметок Mininote в среде Docker.

3. Проверка местной окружающей среды

3.1 Проверка статуса службы Docker

Проверьте, нормально ли работает служба Docker, и убедитесь, что Docker работает нормально.

Язык кода:bash
копировать
[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 2024-01-10 23:48:33 CST; 40min ago
     Docs: https://docs.docker.com
 Main PID: 11683 (dockerd)
    Tasks: 8
   Memory: 128.8M
   CGroup: /system.slice/docker.service

3.2 Проверьте версию Docker

Проверьте версию Docker. Текущая версия Docker — 20.10.17.

Язык кода:bash
копировать
[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c701

3.3 Проверьте версию Docker Compose

Проверьте версию Docker Compose, чтобы убедиться, что она выше 2.0.

Язык кода:bash
копировать
[root@jeven ~]# docker compose version
Docker Compose version v2.6.0

4. Загрузите образ Mininote.

Извлеките образ Mininote из зеркального репозитория Google.

Язык кода:bash
копировать
[root@jeven ~]# docker pull  ghcr.io/muety/mininote:latest
latest: Pulling from muety/mininote
Digest: sha256:1c3546a4ce6aea5b448c18d59a0ac9a23f7c76b8dee704fba95b3ac5f4e0726a
Status: Image is up to date for ghcr.io/muety/mininote:latest
ghcr.io/muety/mininote:latest

5. Разверните персональную панель управления Mininote

5.1 Создайте каталог развертывания

Создать каталог развертывания Mininote

Язык кода:bash
копировать
mkdir -p /data/mininote/data  && cd /data/mininote/

5.2 Настройка SSL-сертификата

В каталоге /data/mininote/ создайте файлы, связанные с сертификатом.

Язык кода:bash
копировать
openssl genrsa -out mininote.key 2048
openssl req -new -key mininote.key -out mininote.csr
openssl x509 -req -in mininote.csr -signkey mininote.key -out mininote.crt

5.3 Редактирование файла docker-compose.yaml

Если вам нужно использовать команду docker-cli для развертывания, выполните следующую команду, и сопоставленный порт можно будет изменить самостоятельно.

Язык кода:bash
копировать
docker run     -d     -p 3000:3000     -v mininote-data:/app/data     -v /data/mininote/mininote.crt:/etc/mininote.crt:ro     -v /data/mininote/mininote.key:/etc/mininote.key:ro     -e HTTPS_CERT=/etc/mininote.crt     -e HTTPS_KEY=/etc/mininote.key     --name mininote     ghcr.io/muety/mininote:latest

В этом практическом развертывании используется docker Compose и редактируется файл docker-compose.yaml.

Язык кода:yaml
копировать
[root@jeven mininote]# cat docker-compose.yaml
version: '3'
services:
  mininote:
    image: ghcr.io/muety/mininote:latest
    restart: always
    container_name: mininote
    ports:
      - 3000:3000
    volumes:
      - mininote-data:/app/data
      - /data/mininote/mininote.crt:/etc/mininote.crt:ro
      - /data/mininote/mininote.key:/etc/mininote.key:ro
    environment:
      - HTTPS_CERT=/etc/mininote.crt
      - HTTPS_KEY=/etc/mininote.key
volumes:
  mininote-data:

5.3 Создание контейнера Mininote

Создайте контейнер Mininote, используя файл docker-compose.yaml.

Язык кода:bash
копировать
[root@jeven mininote]# docker compose up -d
[+] Running 3/3
 ⠿ Network mininote_default         Created                                                                             0.0s
 ⠿ Volume "mininote_mininote-data"  Created                                                                             0.0s
 ⠿ Container mininote               Started                                                                             0.5s

5.4 Проверка статуса контейнера Mininote

Проверьте состояние контейнера Mininote, чтобы убедиться, что контейнер Mininote запускается нормально.

Язык кода:bash
копировать
[root@jeven mininote]# docker compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
mininote            "/bin/sh -c 'yarn st…"   mininote            running             0.0.0.0:3000->3000/tcp, :::3000->3000/tcp

5.5 Проверка журналов контейнера Mininote

Проверьте журнал контейнера Mininote, чтобы убедиться, что служба Mininote работает нормально.

Язык кода:bash
копировать
[root@jeven mininote]#  docker compose logs
mininote  | yarn run v1.22.19
mininote  | $ node index.js
mininote  | Listening on localhost:3000.

6. Посетите домашнюю страницу Mininote.

Адрес доступа: https://192.168.3.166:3000, замените IP на IP-адрес вашего собственного сервера и войдите на домашнюю страницу Mininote. Если к нему невозможно получить доступ, проверьте, настроен ли брандмауэр сервера, разрешен ли порт группы безопасности облачного сервера и т. д.

Вставьте сюда описание изображения
Вставьте сюда описание изображения

7. Базовое использование Mininote

7.1 Создать пароль

Введите имя блокнота и нажмите кнопку «Открыть».

Вставьте сюда описание изображения
Вставьте сюда описание изображения

Установите пароль для нового блокнота и настройте пароль.

Вставьте сюда описание изображения
Вставьте сюда описание изображения

7.2 Создать новую заметку

Заполните заголовок заметки, нажмите знак «+» и выберите «Новая заметка».

Вставьте сюда описание изображения
Вставьте сюда описание изображения

Отредактируйте содержимое заметки и сохраните ее.

Вставьте сюда описание изображения
Вставьте сюда описание изображения

8. Резюме

Mininote — это легкий инструмент для создания заметок, который легко развернуть и который можно быстро развернуть на личном сервере с помощью Docker. Его страница лаконична, а работать с ним очень просто, что делает его очень подходящим в качестве эффективного инструмента для повседневной работы и учебы. Он поддерживает Markdown, что может помочь нам лучше писать технические заметки и статьи. Mininote также представляет собой гибкое приложение для создания заметок Markdown, подходящее для индивидуального и командного использования, которое может помочь нам лучше организовывать заметки и информацию и управлять ими.

Я участвую в пятом выпуске специального учебного лагеря Tencent Technology Creation 2024 с эссе, получившими награды. Приходите и разделите приз со мной!

boy illustration
Flask Learning-9. 2 способа включения режима отладки (debug mode).
boy illustration
Руководство по настройке самостоятельного сервера для Eudemons Parlu
boy illustration
40 вопросов для собеседований по SpringBoot, которые необходимо задавать на собеседованиях! При необходимости ответьте на вопросы для собеседования SpringBoot [предлагаемый сборник] [легко понять]
boy illustration
Через два года JVM может быть заменен GraalVM.
boy illustration
Разрешение циклических зависимостей Spring Bean: существует ли неразрешимая циклическая ссылка?
boy illustration
Разница между промежуточным программным обеспечением ASP.NET Core и фильтрами
boy illustration
[Серия Foolish Old Man] Ноябрь 2023 г. Специальная тема Winform Control Элемент управления DataGridView Подробное объяснение
boy illustration
.NET Как загрузить файлы через HttpWebRequest
boy illustration
[Веселый проект Docker] Обновленная версия 2023 года! Создайте эксклюзивный инструмент управления паролями за 10 минут — Vaultwarden
boy illustration
Высокопроизводительная библиотека бревен Golang zap + компонент для резки бревен лесоруба подробное объяснение
boy illustration
Концепция и использование Springboot ConstraintValidator
boy illustration
Новые функции Go 1.23: точная настройка основных библиотек, таких как срезы и синхронизация, значительно улучшающая процесс разработки.
boy illustration
[Весна] Введение и базовое использование AOP в Spring, SpringBoot использует AOP.
boy illustration
Чтобы начать работу с рабочим процессом Flowable, этой статьи достаточно.
boy illustration
Байтовое интервью: как решить проблему с задержкой сообщений MQ?
boy illustration
ASP.NET Core использует функциональные переключатели для управления реализацией доступа по маршрутизации.
boy illustration
[Проблема] Решение Невозможно подключиться к Redis; вложенное исключение — io.lettuce.core.RedisConnectionException.
boy illustration
От теории к практике: проектирование чистой архитектуры в проектах Go
boy illustration
Решение проблемы искажения китайских символов при чтении файлов Net Core.
boy illustration
Реализация легких независимых конвейеров с использованием Brighter
boy illustration
Как удалить и вернуть указанную пару ключ-значение из ассоциативного массива в PHP
boy illustration
Feiniu fnos использует Docker для развертывания учебного пособия по AList
boy illustration
Принципы и практика использования многопоточности в различных версиях .NET.
boy illustration
Как использовать PaddleOCRSharp в рамках .NET
boy illustration
CRUD используется уже два или три года. Как читать исходный код Spring?
boy illustration
Устраните проблему совместимости между версией Spring Boot и Gradle Java: возникла проблема при настройке корневого проекта «demo1» > Не удалось.
boy illustration
Научите вас шаг за шагом, как настроить Nginx.
boy illustration
Это руководство — все, что вам нужно для руководства по автономному развертыванию сервера для проектов Python уровня няни (рекомендуемый сборник).
boy illustration
Не удалось запустить docker.service — Подробное объяснение идеального решения ️
boy illustration
Настройка файлового сервера Samba в системе Linux Centos. Анализ NetBIOS (супер подробно)