docker搭建linux环境
在啃csapp的时候偶然了解到他的lab十分高质量,于是准备写写lab,但是他是基于linux系统的,故需要在windows上搭建一个linux系统,主流有两种做法
- 购买云服务器,在本地写代码然后上传到云服务器,在云服务器编译运行代码。
- 利用docker建立容器将本地文件挂载上远程的linux系统,这样远程文件与本地文件能够同步。
一开始采用方法2按照网络教程搭建 在拉取镜像后,创建容器的命令行使用部分错误,导致创建的容器下文件挂载有问题,如下图 在指定本地文件绝对路径后少了:/(linux下共享文件夹名),导致进入d:\csapplab后无法访问到本地的文件,正确创建容器后根目录应如下图 进入csapplab文件后列目录应该如下图(此处注意进入csapplab文件的命令,引号不能漏) 之后便可以在本地编辑文件后自动同步到远程服务器,在远程服务器编译。
之前命令行错误没有解决文件挂载问题,导致一直找不到对应文件后,我又转向第一种方式,但云服务器的方式在更新文件后需要手动上传到远程服务器,较为繁琐,后经研究成功用docker搭建了linux服务器。
docker更改镜像存储位置
但在docker使用过程还出现了一个问题,docker默认将镜像保存在c盘中,如果不断拉取新的镜像会导致c盘空间不断减小此时,故需要更改镜像的存储位置。 由于docker使用了wsl2引擎,故只能通过wsl2命令行来修改设置 这也有两种做法: 1.编辑 /etc/docker/daemon.json 文件 但这要使用linux下的vi命令来创建或者编辑daemon.json文件,没在windows命令行下找到代替的。 2. 利用wsl命令修改,参考【Docker】win10上修改docker的镜像文件存储位置(九)- 通过WSL2修改,在将导出的文件导回wsl时报了一个找不到文件路径的错误 后来原因发现文件查找原理是分步进行的,若找到最后一步发现没有该文件则会创建,若在中间没有知道的话则会报找不到文件路径,如若使用D:\docker\wsl则d盘下必须得有docker文件夹,使用D:\docker的话则不用创建文件夹可以正确运行。 搭建环境真是bug百出的过程,不过终于可以开始写lab了
|