跳转至

# Docker deploy

本页面将介绍使用 Docker 部署 OI Wiki 环境的方式．

Warning

以下步骤须在 root 用户下或 docker 组用户下执行．

## 拉取 OI Wiki 镜像

    1
    2
    3
    4
    5
    6
    7
    # 以下命令在主机中运行其中一个即可
    # 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

## 自行构建镜像

    1
    2
    3
    4
    5
    6
    # 以下命令在主机中运行
    # 克隆 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`）

示例：

    1
    2
    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 镜像站．

## 运行容器

    1
    2
    # 以下命令在主机中运行
    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 部署．

进入容器：

    1
    2
    # 以下命令在主机中运行
    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

退出容器：

    1
    2
    3
    # 以下命令在容器中运行
    # 退出
    exit

## 停止容器

    1
    2
    # 以下命令在主机中运行
    docker stop [name]

## 启动容器

    1
    2
    # 以下命令在主机中运行
    docker start [name]

## 重启容器

    1
    2
    # 以下命令在主机中运行
    docker restart [name]

## 删除容器

    1
    2
    3
    # 以下命令在主机中运行
    # 删除前请先停止容器
    docker rm [name]

## 更新镜像

重新再 `pull` 一次即可，通常不会更新．

## 删除镜像

    1
    2
    3
    # 以下命令在主机中运行
    # 删除前请先删除使用 oi-wiki 镜像构建的容器
    docker rmi [image]

## 疑问

如果您有疑问，欢迎提出 issue！

> 本页面最近更新：2026/1/7 08:56:54，更新历史
> 发现错误？想一起完善？ 在 GitHub 上编辑此页！
> 本页面贡献者：frank-xjh, Junyan721113, billchenchina, c-forrest, ChungZH, CoelacanthusHex, dong628, Enter-tainer, Ir1d, ksyx, Menci, mxr612, NachtgeistW, Tiphereth-A
> 本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供，附加条款亦可能应用