UOJ

部署

首先执行

sudo su

进入 root

然后执行

curl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.sh

安装 docker

接着执行

sudo systemctl start docker

启动 docker 服务

然后执行

sudo docker --version

docker 正常,会输出形如如下的版本号

Docker version 20.10.21, build baeda1f

执行如下内容来安装 docker 加速器

sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOFsudo systemctl daemon-reloadsudo systemctl restart docker

执行如下内容拉取镜像并启动 UOJ 服务

sudo docker pull universaloj/uoj-systemsudo docker run --name uoj -dit -p 80:80 --cap-add SYS_PTRACE universaloj/uoj-system

接下来,UOJ将在后台运行。 上面的代码是用于新建一个 UOJ 容器,重启服务器后不要使用

docker run

来启动容器。 如果您不希望用80端口来运行UOJ,您可以把上面的 -p 80:80 改成 -p 你要的端口:80

稍等大约半个小时(视网络情况而定),访问服务器的地址,您现在应该能看到UOJ正在运行了。

您注册的第一个用户将被自动设为管理员。

容器维护

docker容器很容易维护。您只需要掌握以下命令:

docker start uoj                # 启动 uoj 容器docker stop uoj                 # 暂停 uoj 容器docker restart uoj              # 重启 uoj 容器docker exec -it uoj /bin/bash   # 进入 uoj 容器的终端docker commit uoj uoj_back:tag  # 将 uoj 容器保存为标签为 tag 的 uoj_back 镜像docker ps -a                    # 查看所有的容器docker images                   # 查看所有的镜像docker rm uoj                   # 删除 uoj 容器(慎用)docker rmi uoj_back:tag         # 删除标签为 tag 的 uoj_back 镜像

在docker中,每个容器需要基于一个镜像来运行。最开始,我们的 uoj 容器是基于安装过程中构建的镜像。

下面是一次典型的数据恢复:

docker commit uoj uoj_back:20170101     # 例行备份docker commit uoj uoj_back:20170201     # 例行备份docker commit uoj uoj_back:20170301     # 例行备份# 3月15日,黑恶势力破坏了 uoj,uoj 容器已经无用,必须恢复docker stop uoj
docker rm uoj                           # 删除uoj容器docker run --name uoj -dit -p 80:80 --cap-add SYS_PTRACE uoj_back:20170301# 创建新的 uoj 容器,使用3月1日的备份

数据迁移

下面的命令可以把 uoj_back 这个容器导出为 uoj.tar 这个文件:

docker save -o uoj.tar uoj_back

把 uoj.tar 复制到其他机器上,然后可以运行下面的命令导入 uoj_back 镜像:

docker load --input uoj.tar

下面是一次典型的数据迁移:

# 服务器 A:docker commit uoj uoj_back              # 把uoj容器存储为镜像docker save -o uoj.tar uoj_back         # 把uoj_back镜像导出# 然后通过某些恶毒的手段把 uoj.tar 拷到服务器 B
# 服务器 B:docker load --input uoj.tar             # 导入uoj_back镜像docker run --name uoj -dit -p 80:80 --cap-add SYS_PTRACE uoj_back# 建立 uoj 容器,基于之前服务器 A 的数据,迁移完成

管理员账户

按照套路,UOJ 安装完成后,注册的第一个账户会被自动设为管理员账户。

当您以管理员账户登录 UOJ 后,您就可以依次点击页面右上角 您的用户名系统管理 来进入管理界面。

管理员账户有发布公告、新建题目和比赛等权限。但是,管理员并不能参加比赛。

发布公告

UOJ 发布公告的套路比较神奇,请您仔细阅读这一段。

首先,请您将您的公告发布到您的博客当中,然后再这篇博客的地址中(形如 .../blog/478 )找到最 后的一串数字,记作博客 id。

之后,请您打开管理界面,使用博客 id 添加公告。 您可以置顶公告,需要注意的是,1 表示优先级最低(显示为“三级置顶”),3 表示优先级最高(显示为“一级置顶”)。

好了,差不多就到这里了,如果想要修改全局配置文件的私聊我

需要代部署服务(收小额费用)的也可以私聊我

全局配置文件中包含了网站的基础信息

UOJ超级详细部署文档相关推荐

  1. APP分发系统源码 全开源超级签名系统源码 附带详细部署文档

    介绍: APP分发系统源码.全开源超级签名系统源码. 附带详细部署文档. 源码全开源的!!! 后台账号:admin 后台密码:123456 需要的资料:阿里云账户 服务器 linux(4核8G) 阿里 ...

  2. kubernetes-二进制安装,亲测无坑,在参考安装过程中如果有什么问题欢迎交流,超级详细的文档

    Kubernetes环境搭建(手动K8s集群安装配置.服务部署和管理使用详细步骤,入门K8s容器云平台架构) 前言 说明: 本博客是教大家如何手动搭建kubernetes集群(业内简称K8s),包括集 ...

  3. Redmine详细部署文档

    下载: wget http://cache.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p353.tar.gz wget http://www.redmine.org/ ...

  4. 新鲜出炉的React博客系统源码,极简主义设计,手机端可自适应,超级简单,带部署文档与演示视频加截图

    新鲜出炉的React博客系统源码,极简主义设计,手机端可自适应,超级简单,带部署文档与演示视频加截图. 使用技术: 客户端前端:Next.js + React 管理端前端:React + Ant De ...

  5. Debezium系列之:使用Debezium接入PostgreSQL数据库数据到Kafka集群的详细技术文档

    Debezium系列之:使用Debezium接入PostgreSQL数据库数据到Kafka集群的详细技术文档 一.概述 二.连接器的工作原理 1.安全 2.快照 3.Ad hoc snapshots ...

  6. Docker部署文档

    Docker部署文档 目录 Docker部署文档 1 一.什么是Docker 3 1.1Docker简介 3 1.2对比传统虚拟机总结 4 1.3Docker通常用于如下场景: 5 1.4基本概念 5 ...

  7. Blog_mini完整部署文档

    为了使广大朋友能够使用上开源博客系统Blog_mini,作者撰写了非常详细的部署文档,涵盖在CentOS与Ubuntu上的详细部署方案,力求:只要看了部署文档,就一定可以把Blog_mini成功部署! ...

  8. django+nginx+uwsgi项目部署文档整理

    django+nginx+uwsgi项目部署文档整理 参考文章:https://blog.csdn.net/qq_42314550/article/details/81805328 一.python安 ...

  9. linux上搭载was应用上传中文文件,受支持的Linux操作系统和WAS ND 9.0安装部署文档的资料说明...

    本文档的主要内容详细介绍的是受支持的Linux操作系统和WAS ND 9.0安装部署文档的资料说明. 从was9.0开始支持的最低版本的red hat Linux系统为6.6且仅支持64位操作系统 计 ...

最新文章

  1. 基于阿里云RDS创建ECS自建从库
  2. HTTP----HTTP2.0新特性
  3. C++---堆代码实现
  4. 【UE4游戏开发】安装UE4时报SU-PQR1603错误的解决方法
  5. 大数据开发笔记(八):Sparkstreaming
  6. 【SPOJ - NSUBSTR】Substring(统计长度为x的子串最多出现的次数--后缀自动机)
  7. 安装Fortran语言编程环境全流程记录
  8. 机器学习读书笔记:贝叶斯公式
  9. linux fdisk等命令,linux命令:fdisk(示例代码)
  10. 更新xcode 12.51时提示空间不足,以及macos的空间清理
  11. mongodb查询后排序
  12. 从实验室跃进产业,腾讯AI是如何向to B进化的?
  13. 驱动开发人员不足?经验不够?一招教你立即摆平!
  14. epf配色方案如何导入到Eclipse
  15. jfinal java搭建_Jfinal 项目搭建
  16. octave画心形曲线
  17. shELL中的字符串处理(转)
  18. windows 创建虚拟wifi
  19. 【数字IC验证进阶】VCS编译SV/UVM常见错误总结
  20. Java 并发小册 2022 索引版正式来袭,持续更新

热门文章

  1. 余大洪老师---沪师经纪刘建
  2. matlab两列矩阵相除,矩阵运算矩阵除法运算 - matlab资源网2
  3. java 显示文本框_java计算器文本框显示
  4. 大前端涉猎之前后端交互总结2:使用PHP进行表单数据上传与更新
  5. 2021年3月全国计算机等级考试 贵州考点~
  6. python爬虫进阶-自如租房信息(CSS反爬)
  7. 合同法律风险管理 合同的精神
  8. 自己动手写全套无人驾驶算法系列(三)机器人控制
  9. How to Start a Ping Pong Game?
  10. 上海国家会计学院-美国亚利桑那州大学EMBA硕士中国项目校友