linux环境 Ubuntu 16.04
第一步 docker安装
apt-get安装的不一定是最新的docker,安装版本是1.10.2,不过,对于docker使用没任何什么问题,如果要后续升级方便,建议使用下面的方法。
1.切换到root权限或者用sudo
2.升级source列表并保证https和ca证书成功安装
apt-get update
apt-get install apt-transport-https ca-certificates
3.增加新的GPG 密钥
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
4.新增或编辑source列表里的docker.list文件
vi /etc/apt/sources.list.d/docker.list //如果不存在就新增
5.删除已有的entries
6.按照系统版本增加entry(Ubuntu Xenial 16.04 (LTS))
deb https://apt.dockerproject.org/repo ubuntu-xenial main
7.重新执行更新操作,并删除老的repo
apt-get purge lxc-docker //没有安装的话,跳过
8.查看是否有正确的可用版本
apt-cache policy docker-engine
如图:
9.安装docker
apt-get update
apt-get install docker-engine
service docker start
docker run hello-world
第二步 下载uoj并安装
git clone https://github.com/vfleaking/uoj
cd uoj
./install
This is a dockerized version of UOJ. Before installation, please make sure that Docker has already been installed on your OS.
The docker image of UOJ is 64-bit, so a 32-bit host OS may cause installation failure.
1.此时报错"Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout"百度后发现大概就是被墙的原因…
只能不用官方的dockhub了,转而使用国内的仓库daocloud,请自行注册账号获取地址。
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://???.m.daocloud.io
service docker restart
2.此时又报错缺少jdk
下载jdk-7u76-linux-x64.tar.gz和jdk-8u31-linux-x64.tar.gz并放入 "./docker/"目录下再次install 成功!
返回 Successfully built < image-id >
3.运行
docker run -it -p 80:80 -p 3690:3690 < image-id >
此时又报错80端口被占用…那就查看一下谁在用吧
lsof -i:80
发现原来是之前尝试搭其他服务器的时候没有关闭Nginx
service nginx stop
4.继续尝试运行
sudo docker run --name uoj -dit -p 80:80 -p 3690:3690 -p 5678:5678 -p 6789:6789 --cap-add SYS_PTRACE uoj
该博客详细介绍了如何在Ubuntu 16.04环境下安装Docker,包括升级源、安装Docker引擎、运行hello-world测试。然后,博主分享了下载和安装UOJ的步骤,包括解决Docker镜像问题、安装过程中遇到的JDK缺失问题,以及处理80端口被占用的问题。整个过程适合对Linux和Docker有一定了解的读者。

3348

被折叠的 条评论
为什么被折叠?



