如何在Docker容器中运行一个C++应用程序?

在Docker容器中运行一个C++应用程序,可以通过以下步骤进行:

  1. 编写C++应用程序:
#include <iostream>

int main() {
    std::cout << "Hello World!" << std::endl;
    return 0; 
}

编译为main.cpp。

  1. 构建Dockerfile:
Dockerfile
FROM gcc:9.3.0 AS build
WORKDIR /app
COPY main.cpp .
RUN g++ main.cpp -o main 

FROM ubuntu:20.04  
WORKDIR /app
COPY --from=build /app/main .
ENTRYPOINT ["./main"]

此Dockerfile采用多阶段构建。第一阶段基于GCC镜像编译C++应用程序,第二阶段基于Ubuntu镜像仅复制构建好的二进制文件,并指定为入口点。

  1. 构建镜像:
docker build -t cpp-app .
  1. 运行容器:
docker run -it cpp-app

输出:

Hello World!
  1. 在Docker Compose中定义应用:
yaml
version: '3' 
services:
  cpp-app:
    build: .
    image: cpp-app
docker-compose run cpp-app

可以一键运行应用。