用 Docker 部署 OI Wiki
本頁面將介紹使用 Docker 部署 OI Wiki 環境的方式。
Warning
以下步驟須在 root 用户下或 docker 組用户下執行。
拉取 OI Wiki 鏡像
| # 以下命令在主機中運行其中一個即可
# Docker Hub 鏡像(官方鏡像倉庫)
docker pull 24oi/oi-wiki
# DaoCloud Hub 鏡像(國內鏡像倉庫)
docker pull daocloud.io/sirius/oi-wiki
# Tencent Hub 鏡像(國內鏡像倉庫)
docker pull ccr.ccs.tencentyun.com/oi-wiki/oi-wiki
|
自行構建鏡像
| # 以下命令在主機中運行
# 克隆 Git 倉庫
git clone https://github.com/OI-wiki/OI-wiki.git
cd OI-wiki/
# 構建鏡像
docker build -t [name][:tag] . --build-arg [variable1]=[value1] [variable2]=[value2]...
|
- (必須)設置
[name] 以設置鏡像名,(可選)設置 [tag] 以設置鏡像標籤(若設置,則運行時鏡像名由兩部分構成)。
- 可以通過
--build-arg 參數設置環境變量。
可以使用的環境變量:
- 可以設置
WIKI_REPO 來使用 Wiki 倉庫的鏡像站點(當未設置時自動使用 GitHub)
- 可以設置
PYPI_MIRROR 來使用 PyPI 倉庫的鏡像站點(當未設置時自動使用官方 PyPI)
- 在國內建議使用 TUNA 鏡像站
https://pypi.tuna.tsinghua.edu.cn/simple/
- 可以設置
LISTEN_IP 來更改監聽 IP(當未設置時為 0.0.0.0,即監聽所有 IP 的訪問)
- 可以設置
LISTEN_PORT 來更改監聽端口(當未設置時為 8000)
示例:
| docker build -t OI_Wiki . --build-arg WIKI_REPO=https://hub.fastgit.xyz/OI-wiki/OI-wiki.git PYPI_MIRROR=https://pypi.tuna.tsinghua.edu.cn/simple/
# 構建一個名為 OI_Wiki (標籤默認)的鏡像,使用 FastGit 服務加速克隆,使用 TUNA 鏡像站。
|
運行容器
| # 以下命令在主機中運行
docker run -d -it [image]
|
- (必須)設置
[image] 以設置鏡像。例如,從 Docker Hub 拉取的為 24oi/oi-wiki;DaoCloud Hub 拉取的則為 daocloud.io/sirius/oi-wiki。
- (必須)設置
-p [port]:8000 以映射容器端口至主機端口(不寫該語句則默認為不暴露端口。設置時請替換 [port] 為主機端口)。設置後可以在主機使用 http://127.0.0.1:[port] 訪問 OI Wiki。
- 設置
--name [name] 以設置容器名字。(默認空。設置時請替換 [name] 為自定義的容器名字。若想查看容器 id,則輸入 docker ps)
使用容器
Note
示例基於 Ubuntu latest 部署。
進入容器:
| # 以下命令在主機中運行
docker exec -it [name] /bin/bash
|
若在上述運行容器中去掉 -d,則可以直接進入容器 bash,退出後容器停止,加上 -d 則後台運行,請手動停止。上述進入容器針對加上 -d 的方法運行。
特殊用法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 | # 以下命令在容器中運行
# 更新 git 倉庫
wiki-upd
# 使用我們的自定義主題
wiki-theme
# 構建 mkdocs ,會在 site 文件夾下得到靜態頁面
wiki-bld
# 構建 mkdocs 並渲染 MathJax ,會在 site 文件夾下得到靜態頁面
wiki-bld-math
# 運行一個服務器,訪問容器中 http://127.0.0.1:8000 或訪問主機中 http://127.0.0.1:[port] 可以查看效果
wiki-svr
# 修正 Markdown
wiki-o
|
退出容器:
停止容器
| # 以下命令在主機中運行
docker stop [name]
|
啓動容器
| # 以下命令在主機中運行
docker start [name]
|
重啓容器
| # 以下命令在主機中運行
docker restart [name]
|
刪除容器
| # 以下命令在主機中運行
# 刪除前請先停止容器
docker rm [name]
|
更新鏡像
重新再 pull 一次即可,通常不會更新。
刪除鏡像
| # 以下命令在主機中運行
# 刪除前請先刪除使用 oi-wiki 鏡像構建的容器
docker rmi [image]
|
疑問
如果您有疑問,歡迎提出 issue!
本页面最近更新:,更新历史
发现错误?想一起完善? 在 GitHub 上编辑此页!
本页面贡献者:OI-wiki
本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用