MENU

【笔记】Docker 安装配置 MarkDown 写作神器 codimd 平台

2021 年 09 月 05 日 • 阅读: 171 • 笔记

前言

这里给大家介绍一个提高生产力工具,在线 markdown 文档平台,这个工具可以让大家随时书写文档和博客,最近在自己新入手的腾讯云轻量 2H4G8M 服务器中进行了部署。这里进行记录安装细节及注意事项。

本篇文章即是使用 刚搭建的 codimd markdown 写作平台创作的!

codimd 介绍

CodiMD 是一个基于 Markdown 格式文档的在线协作编辑器开源项目,可以在企业和团队间共享文档。项目地址在 GitHub 中地址为 https://github.com/hackmdio/codimd 。考虑连接速度问题,安装到自己的低延时国内服务器中是一个不错的选择。

codimd 安装

环境准备

一台服务器,系统为 centos (这里系统类型将影响下文中命令的语法,本文以 centos 为例),不同系统之间安装方式大同小异。

安装步骤

  1. 在 MySQL 建立 codimd 需要使用的数据库
  2. 安装 git
  3. 安装 docker
  4. 安装 docker-compose
  5. 安装 codimd
  6. 放行各个端口

创建数据库

这里以腾讯云服务器,宝塔面板为例演示如何创建数据库。
注意,这里必须设置数据库权限为允许所有 ip

pic62

安装 git

yum install git

安装 docker

yum install docker

安装 docker-compose

yum install docker-compose

安装 codimd

在 root 文件夹下创建一个目录(如 markdown ),目录内创建 docker-compose.yml

1. 可以在 宝塔面板/文件 栏目中进行创建(推荐----简单方便)
2. 也可以使用 Linux 命令创建文件(需要一定基础中的基础)
2.1 使用命令 mkdir markdown 创建 'markdown' 目录
2.2 使用命令 touch docker-compose.yml 创建 'docker-compose.yml' 文件
2.3 使用命令 vim docker-compose.yml 编辑 'vim docker-compose.yml' 文件

写入以下内容(一定要看注释)

version: "3"
services:
  database:
    image: postgres:11.6-alpine
    environment:
      - POSTGRES_USER=codimd
      # 'codimd' 替换为在 “创建数据库” 步骤中创建的数据库用户名
      - POSTGRES_PASSWORD=password
      # 'password'替换为在 “创建数据库” 步骤中创建的数据库密码
      - POSTGRES_DB=codimd
      # 'codimd' 替换为在 “创建数据库” 步骤中创建的数据库名
    volumes:
      - 'database-data:/var/lib/postgresql/data'
    restart: always
  codimd:
    image: hackmdio/hackmd:2.4.1
    environment:
      - CMD_DB_URL=mysql://codimd:Zjy5201314...@172.17.0.1:3306/codimd
      # CMD_DB_URL 配置项格式
      # 数据库连接协议://用户名:密码@数据库主机:端口号/数据库名
      # 例如,我是用的是 mysql 数据库(是在宿主机中安装的) ,这里的 '172.17.0.1'可以使用命令 'ip addr show docker0'获取,不要填服务器外网地址
      # 例:mysql://codimd:password@172.17.0.1:3306/codimd
      - CMD_USECDN=false
    depends_on:
      - database
    ports:
      - '3000:3000'
    volumes:
      - upload-data:/home/hackmd/app/public/uploads
    restart: always
volumes:
  database-data: {}
  upload-data: {}

注意服务器和面板放行数据库端口( mysql 默认为 3306 )
保存后退出到 '创建 docker-compose.yml' 的路径执行以下命令

docker-compose up -d

pic63

这里如果出现问题,提示"Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?",请看文末 "问题解决栏目 问题 1"

查看安装是否成功

使用命令 docker ps,查看 codimd 是否在运行

pic64

查看运行日志

使用以下命令查看 codimd 运行日志

docker logs -f -t --tail 想要查看的日志行数 容器名(在“查看安装是否成功步骤中可以获取”)

例如我执行的:

docker logs -f -t --tail 10  codimd_codimd_1

返回结果:

HTTP Server listening at 0.0.0.0:3000
# 即代表 codimd 安装成功

放行各个端口

  • mysql(或其他) 数据库端口 默认为 3306
  • codimd 运行端口 默认为 3000

立即体验

通过以上步骤如果没遇到问题的话你已经成功安装了 codimd ,可通过 '服务器外网 ip:3000' 访问 codimd 。可以注册登录使用,安全性可靠,可以放心使用。

pic65

反向代理

通过反向代理,我们可以避免使用 ip+ 端口 的方式进行访问,而是通过域名进行访问

具体步骤

1.新建一个网站

pic66

2.设置反向代理

pic67

我的演示站点

http://md.jerryiweb.com

问题解决

问题 1. 执行命令 docker-compose up -d 提示 Couldn’t connect to Docker daemon at http+docker://localunixsocket - is it running?

这里引用了简书博主(AceCream 佳)的方法,可以自行去看
地址: https://www.jianshu.com/p/1354e0506753

问题出现的的原因及解决原理

Docker 的守护线程绑定的是 unix socket,而不是 TCP 端口,这个套接字默认属于 root,其他用户可以通过 sudo 去访问这个套接字文件。所以 docker 服务进程都是以 root 账户运行。
解决的方式是创建 docker 用户组,把应用用户加入到 docker 用户组里面。只要 docker 组里的用户都可以直接执行 docker 命令。

解决步骤

1.通过以下指令查看是否有用户组:

cat /etc/group | grep docker

# **如果有就跳过第二步**

2.通过以下指令创建 docker 用户组:

sudo groupadd docker

3.通过以下指令将用户加入用户组:

sudo usermod -aG docker 当前正在使用的用户名

4.通过以下指令检查是否有效:

cat /etc/group

5.通过以下指令重启 docker-daemon:

sudo systemctl restart docker

6.通过以下指令给 docker.sock 添加权限:

sudo chmod a+rw /var/run/docker.sock
最后编辑于: 2021 年 09 月 09 日
返回文章列表 文章二维码
本页链接的二维码
打赏二维码