Skip to content

为学生提供基于 Docker 容器的虚拟 Linux 实验环境

License

Notifications You must be signed in to change notification settings

xieyumc/EduLinux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EduLinux

为学生提供基于 Docker 容器的虚拟 Linux 实验环境 img.png

部署

部署docker容器

  1. 安装 Docker以及 Docker Compose(需要使用V2版本)
  2. 克隆本项目,切换工作目录Docker_config
  3. 使用dockerfile 编译镜像student-linux-env
docker build -t student-linux-env .
  1. 使用docker-compose 启动容器
docker compose up

部署管理界面

  1. 切换到目录Docker_manage
  2. 修改一下settings.py文件,修改CSRF_TRUSTED_ORIGINS = [""]字段,增加你的服务器IP地址或者域名
  3. pip安装依赖
pip install -r requirements.txt

4.运行管理界面

nohup python manage.py runserver 0.0.0.0:8000 &

学生使用

访问http://localhost/student1 ,root用户名studentroot,密码student_password

这个是学生1的环境,其他学生的环境分别是http://localhost/student2http://localhost/student3 以此类推

文件管理

./volume/share 是共享文件夹,映射到容器的/home/student/share,这个目录可以作为发布实验文件用,所有容器都可以访问,并且学生在容器内是只读的

./volume/student/1 是学生1的文件夹,映射到容器的/home/student/1,这个目录是学生1的私人文件夹,其他学生无法访问,学生可以在这个目录下进行实验

管理容器

访问http://localhost/student1/manage ,即可管理学生1的容器,可以查看容器的状态,重启容器,重置容器等 img.png

更多配置

修改学生数量

修改docker-compose.yml,增加新学生可按照以下模版:

  student1:
    image: student-linux-env
    container_name: student1
    networks:
      - webnet
    volumes:
      - ./volume/share:/home/student/share:ro
      - ./volume/student/1:/home/student/1
    deploy:
      resources:
        limits:
          cpus: '0.1'
          memory: 128M

同时修改nginx.conf,增加新学生的配置,可按照以下模版:

# 端口转发
upstream student1 {
        server student1:7681;
}
  
# student1
location /student1/ {
            proxy_pass http://student1/;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header Host $host;
}

还需要修改./volume/student/,增加新学生的文件夹

配置Linux环境

目前容器安装了常见的Linux工具:

RUN apt-get update && apt-get install -y \
    sudo \
    vim \
    wget \
    curl \
    net-tools \
    openssh-server \
    python3 \
    build-essential \
    git \
    cmake \
    make \
    gcc \
    libjson-c-dev \
    libwebsockets-dev

如果需要安装其他工具,可以修改Dockerfile,增加新的安装命令

修改学生密码,环境变量等

修改Dockerfile,修改student用户的密码

RUN useradd -m -u 1000 -s /bin/bash student && \
    echo "student:student_password" | chpasswd && \
    adduser student sudo && \
    cp -r /etc/skel/. /home/student/ && \
    chown -R student:student /home/student/

修改容器资源限制

默认容器的CPU和内存限制是10%和128M内存

修改docker-compose.yml,修改deploy部分的resources字段,可以修改CPU和内存的限制

快速批量增加学生

使用python脚本,请在python脚本里修改学生的用户,然后运行:

python generate_docker_compose.py
python generate_nginx_conf.py
python generate_directories.py

About

为学生提供基于 Docker 容器的虚拟 Linux 实验环境

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published