docker 镜像完整生成指南
docker 镜像完整生成指南
1. 生成镜像
▶ 方法一:通过 docker commit
生成(适合临时修改)
# 1. 启动基础容器
docker run -it --name=cpp-dev ubuntu:18.04 /bin/bash# 2. 在容器内安装环境(示例)
apt update && apt install -y \build-essential \cmake \git \wget# 3. 安装 Boost 1.88
wget https://boostorg.jfrog.io/artifactory/main/release/1.88.0/source/boost_1_88_0.tar.gz
tar -xzf boost_1_88_0.tar.gz
cd boost_1_88_0
./bootstrap.sh && ./b2 install# 4. 退出容器并提交为镜像
exit
docker commit cpp-dev ubuntu18.04-boost1.88-cmake3.27-git:1.0
▶ 方法二:通过 Dockerfile
生成(推荐,可复现)
# Dockerfile 内容
FROM ubuntu:18.04
RUN apt update && apt install -y build-essential cmake git wget
RUN wget https://boostorg.jfrog.io/artifactory/main/release/1.88.0/source/boost_1_88_0.tar.gz && \tar -xzf boost_1_88_0.tar.gz && \cd boost_1_88_0 && \./bootstrap.sh && ./b2 install
# 构建镜像
docker build -t ubuntu18.04-boost1.88-cmake3.27-git:1.0 .
2. 验证镜像
# 查看镜像列表
docker images# 测试运行
docker run -it ubuntu18.04-boost1.88-cmake3.27-git:1.0 /bin/bash
boost_version=$(grep "BOOST_VERSION" /usr/local/include/boost/version.hpp | awk '{print $3}')
echo "Boost version: $((boost_version/100000)).$((boost_version/100%1000)).$((boost_version%100))"
3. 打包镜像
# 打包为 .tar 文件
docker save -o ubuntu-dev-env_1.0.tar ubuntu18.04-boost1.88-cmake3.27-git:1.0# (可选)压缩文件
gzip ubuntu-dev-env_1.0.tar
4. 共享镜像
▶ 方式一:直接发送文件
scp ubuntu-dev-env_1.0.tar.gz user@remote:/path/
▶ 方式二:上传到镜像仓库
# 登录 Docker Hub
docker login# 标记镜像
docker tag ubuntu18.04-boost1.88-cmake3.27-git:1.0 yourusername/dev-env:1.0# 推送镜像
docker push yourusername/dev-env:1.0
5. 对方如何使用
▶ 从 .tar 文件加载
docker load -i ubuntu-dev-env_1.0.tar
▶ 从仓库拉取
docker pull yourusername/dev-env:1.0
6. 完整流程图示
7. 注意事项
-
空间要求:
• 基础镜像 (~60MB) + Boost (~1GB) ≈ 最终镜像 1.1GB+ -
版本控制:
• 每次环境变更建议升级标签(如:1.0
→:1.1
) -
安全建议:
• 删除容器内的临时文件(如boost_1_88_0.tar.gz
)• 使用
docker scan
检查镜像漏洞
8. 文档更新记录
版本 | 日期 | 修改内容 |
---|---|---|
v1.1 | 2024-06-05 | 增加 Dockerfile 生成方法 |
v1.0 | 2024-06-04 | 初始版本 |