使用docker-compose配置dokuwiki

使用docker-compose配置dokuwiki

很早就装过了dokuwiki,但一直没有用起来,直到在群晖上仔细研究了一下,惊了。赶紧配置起来。

大家公认的,dokuwiki的几个好处:

  1. 配置简单,不涉及数据库

  2. 功能完整,wiki的基本功能,检索功能,以及插件功能,都非常强大。

我个人认为的好处是: 它支持markdown!!!! 它支持markdown!!!! 它支持markdown!!!!

这个特性就足够牛B了。一直认为在线markdown就得用预编译模式。有了这个功能,可以简化很多编辑过程了。

我的云,用了有十几年了,上面居然不支持PHP7,于是干脆狠下心,重做了一套系统,使用docker来维护我的全部应用。在此记录一下关键指令。

docker的安装 #

按照官方教程 https://docs.docker.com/engine/install/ubuntu/,还是很容易安装成功的。注意这里在服务器上装的是docker-engine。

安装完成后,可以使用root执行各项docker指令。但是,一般希望non-root用户调用。此时可以将用户加入到docker组中,

sudo usermod -aG docker 用户名

重新登录,就可以使用普通用户执行docker指令了。

我这里安装时因为没处理好,用sudo启动docker,导致进程建的文件夹属于root,但是执行权限non-root。最后报了no permission的错误。重设文件夹归属就好了。

常用的几个docker指令 #

获取并运行容器 #

下面是官方给的一个执行样例,其中的-d表示后台运行,-p 80:8080是容器8080端口映射到宿主机80端口。--volume是目录的映射,最后的bitnami/dokuwiki:latest是镜像名字。 docker会自动的去pull镜像,并执行,起名为--name指定的名字。

 docker run -d --name dokuwiki -p 80:8080 -p 443:8443 \
  --env DOKUWIKI_PASSWORD=my_password \
  --network dokuwiki-tier \
  --volume /path/to/dokuwiki-persistence:/bitnami/dokuwiki \
  bitnami/dokuwiki:latest

查看容器 #

加上-a能看到停止的容器。初学者容易新建一大堆重复的容器。

docker ps -a

进入容器 #

有两种方法,需要用到容器ID或者容器名,在ps里能看到。

  • docker attach 容器直接进入到容器执行脚本里。多人同时attach会相互影响。会产生阻塞。停掉shell后会导致容器停止
  • docker exec -it 容器 /bin/bash可以进入容器并获得一个bash交互窗口。

删除容器 #

docker rm container_id

或者

docker rm container_name

重命名容器 #

docker rename 原容器名  新容器名

docker-compose配置 #

docker-compose用于批量部署,写一套配置文件,然后就可以一次性全部或者有选择性的部署部分服务。个人感觉,使用docker-compose也是一种优雅的配置方式,里面包含了docker启动需要的各项参数,易于读写。 下面这个是配dokuwiki所用的配置文件,看一看基本上能懂。为了数据安全,挂载外部目录/path/to/dokuwiki_data。所有的数据都在这个目录下了。

# yaml 配置
version: '3'
services:
  dokuwiki:
    image: "bitnami/dokuwiki:latest"
    ports:
      - '80:8080'
      - '443:8443'
    volumes:
      - /path/to/dokuwiki_data:/bitnami/dokuwiki