2026-03-25 09:02:34
使用Docker运行C语言程序的核心步骤如下:
一、准备工作安装Docker
确保宿主机已安装Docker引擎(Windows/macOS用户可安装Docker Desktop,Linux用户通过包管理器安装)
验证安装:docker --version
准备C程序
// 示例程序:test.c#include <stdio.h>#include <unistd.h>int main() { FILE *file = fopen("t.txt", "w+"); if (!file) return 1; while(1) { fprintf(file, "hello world!!!n"); fflush(file); sleep(1); } fclose(file); return 0;}选择基础镜像
推荐使用官方GCC镜像(已包含编译环境):
docker pull gcc:latest编写Dockerfile
# DockerfileFROM gcc:latestCOPY test.c /usr/src/myapp/WORKDIR /usr/src/myappRUN gcc -o myapp test.cCMD ["./myapp"]构建镜像
docker build -t c-program-image .启动容器
docker run -d --name my-c-program c-program-image-d:后台运行
--name:指定容器名称
验证运行
# 查看容器状态docker ps -a# 进入容器检查文件docker exec -it my-c-program bashcat /usr/src/myapp/t.txt镜像与容器关系
镜像(Image)是静态模板,容器(Container)是镜像的运行实例
类似面向对象中「类」与「对象」的关系
文件持久化
默认情况下容器内生成的文件会在容器删除后丢失
如需持久化存储,建议使用卷(Volume):
docker run -d -v /host/path:/usr/src/myapp c-program-image调试技巧
查看容器日志:
docker logs my-c-program交互式运行(用于调试):
docker run -it --rm gcc bash编译错误
确保Dockerfile中COPY指令路径正确
检查基础镜像是否包含必要库(如需数学库可添加-lm)
权限问题
在Dockerfile中添加:
RUN chmod +x /usr/src/myapp/myapp资源限制
限制CPU/内存使用:
docker run -m 512m --cpus 1 c-program-image通过以上步骤,您可以在隔离的Docker容器中成功运行C语言程序,实现开发环境与运行环境的解耦。