使用docker-compose配置dokuwiki
很早就装过了dokuwiki,但一直没有用起来,直到在群晖上仔细研究了一下,惊了。赶紧配置起来。
大家公认的,dokuwiki的几个好处:
-
配置简单,不涉及数据库
-
功能完整,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