Ubuntu下C++容器化实操指南
一 环境准备与快速上手
#include <iostream>
int main() { std::cout << "Hello, C++ in Docker!\n"; return 0; }
FROM ubuntu:22.04
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential cmake gdb && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY main.cpp .
RUN g++ -std=c++20 -O2 -o app main.cpp
CMD ["./app"]
二 构建优化与多阶段实践
FROM ubuntu:22.04 AS builder
RUN apt-get update && apt-get install -y g++ make
WORKDIR /src
COPY . .
RUN g++ -O2 -o /app/app main.cpp
FROM ubuntu:22.04
COPY --from=builder /app/app /usr/bin/app
CMD ["/usr/bin/app"]
三 运行与调试技巧
四 多容器与 Kubernetes 部署
version: "3.8"
services:
node1:
build: .
command: ["./app", "1"]
networks: [app]
node2:
build: .
command: ["./app", "2"]
networks: [app]
networks:
app: {}
apiVersion: apps/v1
kind: Deployment
metadata:
name: cpp-demo
spec:
replicas: 2
selector: { matchLabels: { app: cpp-demo } }
template:
metadata: { labels: { app: cpp-demo } }
spec:
containers:
- name: app
image: your-registry/cpp-demo:v1.2.3
resources:
limits: { cpu: "1", memory: "512Mi" }
requests: { cpu: "500m", memory: "256Mi" }
ports: [{ containerPort: 8080 }]
五 常见问题与排查清单