创建Docker实验环境
创建南京大学jyy老师操作系统实验环境
在ubuntu(wsl或者虚拟机皆可)系统上创建相对应的实验环境;默认机器上已经安装了Docker。
创建根目录文件夹存放Dockerfile和相关文件
这个文件夹用来存放Dockerfile和要用到的相关文件
mkdir my_experiment # 创建my_experiment文件夹
cd my_experiment
创建Dockerfile
首先需要创建一个Dockerfile,Dockerfile 是一个文本文档, 其中包含用户在命令行上调用的所有命令,用于创建镜像;Docker可以直接根据Dockerfile中的 指令自动构建镜像。
vim Dockerfile
在创建好的Dockerfile中添加下面的指令;
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update
RUN apt-get install -y build-essential gcc-multilib qemu-system strace gdb sudo python3 libsdl2-dev libreadline-dev
RUN apt-get upgrade -y
创建docker镜像
使用Docker CLI创建Docker镜像
docker build -t my_experiment_image .
在创建Docker镜像时,很容易遇到一些…..坑,比如网络问题=_=,我在解决网络问题时,使用了一些镜像加速,下面是创建镜像加速配置文件的步骤;
# 创建配置文件
sudo vim /etc/docker/daemon.json
在创建好的配置文件中添加相应的镜像加速配置
{
"registry-mirrors": ["https://docker.mirrors.sjtug.sjtu.edu.cn"]
}
在创建好上面的配置文件后,需要重新加载一下配置并且重启一下Docker,使用下面的dash指令可以完成相应的操作;
sudo systemctl daemon-reload # 重新加载配置文件
sudo systemctl restart docker # 重启Docker
在解决完网络问题后,重新创建一下Docker镜像即可。
启动Docker镜像
使用创建好的镜像(my_experiment_image)运行一个容器;
docker run -it my_experiment_image
-it
操作是操作-i
和操作-t
的组合,-i
选项使容器保持标准输入STDIN
打开;-t
操作表示分配一个伪终端pseudo-TTY
给容器
至此实验环境搭建完成,可以开始咯 :P
在首次创建并且启动Docker container后,我们可以使用Ctrl + D
退出当前container,如果下次想进入相同的container,可以直接通过container id
进入同一个container;
# 查看所有container id
docker ps -a
# 假设我们创建的container id为1234565
## 启动之前创建的container
docker start <container id> # 将<container id>替换为自己创建的container id => docker start 1234565
## 进入container的交互式shell
docker exec -it <container id> /bin/bash # 将<container id>替换为自己的id,docker exec -it 123456 /bin/bash