Docker -- 编程开发C/C++

1 C/C++

1.1 关于GCC

GCC(GNU Compiler Collection)是一套由GNU开发的编程语言编译器,是一套以GPL及LGPL许可证所发行的自由软件,也是GNU计划的关键部分。GCC(特别是其中的C语言编译器)通常被认为是跨平台编译器的事实标准。GCC可处理C/C++,以及Fortran、Pascal、Object-C、Java、Ada等多种语言。

1.1.1 使用官方镜像

将C/C++ 代码运行在容器内的最简单方法,就是将编译指令写入Dockerfile中,然后使用此Dockerfile 构建自定义镜像,最后直接运行此镜像,即可启动程序。
如果对GCC版本有要求,可以在以上命令中加入镜像标签,并在下一步的Dockerfile的FROM 指令中明确GCC版本号。然后,在Dockerfile中,加入需要执行的GCC编译命令:

FROM gcc:4.9
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
RUN gcc -o myapp main.c
CMD ["./myapp"]

编辑main.c,内容如下:

#include
int main(){
   
    printf("Hello World\n");
    return 0;
}

使用Dockerfile 来构建镜像my-gcc-app:

$ docker build -t gcc-image .

使用docker images 查看生成的镜像:

$ docker images

创建并运行容器,会编译并运行程序,输出Hello World语句:

$ docker run -it --rm --name my-gcc gcc-image
Hello World

如果只需要容器编译,而不需要运行它,可以使用如下命令:

$ docker run --rm -v "$(pwd)":/usr/src/myapp -w /usr/src/myapp gcc gcc -o myapp main.c

以上命令会将当前目录(“$(pwd)”)挂载到容器的/usr/src/myapp目录,并执行gcc -o myapp main.c。GCC将会编译myapp.c代码,并将生成的可执行文件输出至/usr/src/myapp 文件夹。
如果项目已经编写好了Makefile,也可以在容器中直接执行make命令:

$ docker run --rm -v "$(pwd)":/usr/src/myapp -w /usr/src/mya

你可能感兴趣的:(Linux,docker)