文章目录
前言
关于vscode+wsl+docker的c/c++环境配置。由于docker命令行的参数过多,尽可能结合vscode docker插件进行描述,减少繁琐的命令行参数。以供下次配置参考。
一、前置工具安装
1. wsl环境配置
教程设置WSL开发环境。
2. wsl安装docker
wsl中无法直接通过apt安装docker,但只需要安装docker desktop官方下载就可以在wsl自动配置docker。
3. vscode安装插件
以下为主要几项。
二、基于docker的c++开发环境配置
1. 创建一个存放dockerfile的文件夹
dockerfile和makefile类似,这里只做简单使用。进入wsl,创建一个单独存放dockerfile的目录。其中,cppdev这次创建的用于c++开发的镜像的名称。
cd ~
mkdir ./dockerfiles
cd ./dockerfiles
mkdir ./cppdev
2. 创建一个dockerfile
创建dockerfile。
cd ./dockerfiles/cppdev
vim dockerfile
通过vim输入以下内容。
FROM ubuntu
RUN apt-get update \
&& apt-get install -y build-essential cmake git openssh-server gdb pkg-config valgrind systemd-coredump \
&& apt-get clean \
&& apt-get vim
FROM代表这个新镜像基于docker市场中哪个已经存在的镜像。通过以下查询ubuntu相关。
docker search ubuntu
RUN代表构建新镜像时,默认运行的命令,主要为gcc g++工具链和vim。
3. 通过dockerfile构建新镜像
在刚才目录下,构建一个名为cppdev的镜像。docker会在该目录下自动搜索dockerfile。
docker build -t cppdev .
构建完成后可以在vscode docker插件中看到cppdev。
可以在插件中通过Run直接创建一个新容器,但vscode默认配置该项是运行完删除的。
创建一个新容器,–name代表容器名字,–it代表镜像名字。
docker run --name cppdev_c -it cppdev
同样可以在docker插件中查看该容器。
三、在容器中开发c语言
1. 通过docker插件进入容器
通过“附加VSC”进入cppdev_c容器。
2. 在容器中运行一个c语言的项目
由于不想在容器中直接clone项目,因此在wsl中clone一个项目。
git clone https://github.com/yongqingzs/c_for_tcp.git
将该项目传输到容器上。在wsl终端运行以下。host-path替换为主机文件或目录的路径,将 container-id替换为容器 ID或名称,将 container-path 替换为想要在容器中放置文件或目录的路径。
docker cp <host-path> <container-id>:<container-path>
现在可以进入该项目进行开发了,其中.vscode的配置和wsl中类似。
总结
第一次接触docker的时候,会感觉比较抽象。这里对docker进行个人总结。
- docker类似一个微型虚拟机,可以节省使用资源,并且方便在各个主机传输,减少环境部署的时间。
- docker的两个关键:镜像和容器。两者可以相互转换,镜像为环境的打包,容器为运行的镜像。容器是实际运行的虚拟机。