# DockerEnv4PCS **Repository Path**: recalling-the-passing-of-time/dockerenv4pcs ## Basic Information - **Project Name**: DockerEnv4PCS - **Description**: 计算机系统综合时间Docker环境,基于Ubuntu1804 - **Primary Language**: Shell - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 166 - **Created**: 2025-09-08 - **Last Updated**: 2025-09-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Docker 开发环境部署脚本 ## 项目信息 项目地址: [https://gitee.com/tjuscs_liym/dockerenv4pcs.git](https://gitee.com/tjuscs_liym/dockerenv4pcs.git) 建议系统环境:Ubuntu 20.04 ## 环境准备 ### 1. 安装 Docker 1.1 通过gitee获取安装脚本 在Linux用户主目录下执行以下命令: ```shell git clone https://gitee.com/tjuscs_liym/dockerenv4pcs.git ``` 1.2 运行安装脚本 进入Linux主目录下的dockerenv4pcs子目录,并运行安装脚本 install_docker.sh,该脚本负责安装docker所需的软件依赖。 ```shell ./install_docker.sh ``` 在安装脚本执行过程中需要输入用户密码,并多次输入y进行确定。 1.3 检测docker是否安装成功 安装脚本执行完成后,尝试执行指令: ```shell sudo docker ps ``` 如果显示如下内容,则说明docker安装成功 ``` CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ``` 1.4 注意事项 在Ubuntu 22.04版本中,可能会由于端口冲突导致docker不能正常工作。 此时需要重新调整iptables,详见 https://blog.csdn.net/vc66vcc/article/details/136412965 在某些系统上,docker安装后并不能立即使用。需要首先执行以下指令启动docker服务。 ```shell sudo service docker restart ``` ### 2. 构建nemu所需系统镜像 目录中包含的Dockerfile.nemu,是用于描述nemu实验所需docker镜像的构建脚本。通过运行build_image.sh脚本,可以对镜像进行自动化的构建。 ```shell ./build_image.sh ``` 在镜像构建过程中,需要频繁访问网络下载构建脚本中所需要的依赖软件。此时应保证网络的畅通和稳定。 镜像构建成功后,通过如下指令查看: ```shell sudo docker images ``` 观察命令的输出,如果在仓库(REPOSITORY)下出现了名为nemu-image的镜像,则说明镜像创建成功。 ``` REPOSITORY TAG IMAGE ID CREATED SIZE nemu-image latest d11174ece6cc 28 minutes ago 836MB ``` ### 3. 创建容器 执行create_container.sh指令创建容器。 ```shell ./create_container.sh ``` 在容器中会将当前设备(宿主机)的HOME目录映射到docker环境中的HOME目录中。因此宿主机的HOME目录与docker中的HOME目录共享相同的文件内容。 docker系统使用和宿主机相同的账户名 docker系统账号的密码为user 容器创建后,可以通过以下执行查看: ```shell sudo docker ps -a ``` 观察命令的输出,如果在容器名称(NAMES)下出现了名为nemu-image的镜像,则说容器创建成功。 ``` CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 994071d76d59 nemu-image "/bin/bash" 1 minutes ago Up 1 minutes nemu-image ``` 至此,环境准备成功。 ## 启动容器 容器创建后,需要启动才能使用。此外,每次开机(进入WSL)后都需要先启动容器才能使用。 执行以下指令完成容器启动: ```shell sudo docker start nemu-image ``` ## 进入容器交互界面 执行以下指令进入容器交互界面,随后出现的提示符,则为容器内部的Linux系统的提示符。在容器内部的/home目录下,则可以访问外部系统的/home/xxxx目录下的内容。 ```shell sudo docker exec -it nemu-image /bin/bash ``` ## nemu开发建议 * 将代码clone至HOME目录下 * 使用VSCode对代码进行编辑 * 进入容器交互界面,在容器内的项目目录中使用make命令进行编译,使用make run命令运行,以及使用make gdb命令进行调试。 * 计算机每次开机后(或重新进入WSL后),需要首先启动docker服务(sudo service docker restart),然后启动容器(sudo docker start nemu-image)。当容器启动后,才能够执行(sudo docker exec -it nemu-image /bin/bash)指令进入交互界面。