lammps/buildenvLAMMPS Build Environments 是一个预配置的 Docker 镜像,旨在简化分子动力学模拟软件 LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator)的编译、构建与定制过程。该镜像集成了 LAMMPS 编译所需的核心依赖(如编译器、数学库、并行计算框架等),提供标准化的构建环境,支持用户快速生成自定义版本的 LAMMPS 可执行文件,无需手动配置系统级依赖。
从 Docker Hub 拉取最新镜像:
bashdocker pull lammps/build-env:latest
如需指定版本(如 20230802):
bashdocker pull lammps/build-env:20230802
将本地 LAMMPS 源码目录(如 ~/lammps-src)挂载到容器内,通过容器编译:
bashdocker run -it --rm \ -v ~/lammps-src:/workspace/lammps \ # 挂载本地源码目录 -v ~/lammps-build:/workspace/build \ # 挂载输出目录(存放编译产物) lammps/build-env:latest \ /bin/bash -c "cd /workspace/lammps && mkdir -p build && cd build && cmake .. && make -j4"
常用环境变量说明:
| 环境变量 | 取值范围 | 描述 |
|---|---|---|
LAMMPS_VERSION | latest/版本号 | 指定 LAMMPS 版本(默认 latest) |
WITH_MPI | ON/OFF | 启用 MPI 并行(默认 ON) |
WITH_OPENMP | ON/OFF | 启用 OpenMP 多线程(默认 OFF) |
WITH_GPU | ON/OFF | 启用 GPU 加速(需宿主机支持 CUDA,默认 OFF) |
EXTRA_PACKAGES | 扩展包名称(逗号分隔) | 启用扩展包(如 KIM,REAXFF) |
示例:启用 MPI+OpenMP,编译 KIM 和 ML-Potentials 扩展包:
bashdocker run -it --rm \ -v ~/lammps-src:/workspace/lammps \ -v ~/lammps-build:/workspace/build \ -e WITH_MPI=ON \ -e WITH_OPENMP=ON \ -e EXTRA_PACKAGES="KIM,ML-Potentials" \ lammps/build-env:latest \ /bin/bash -c "cd /workspace/lammps/build && cmake .. && make -j4"
如需传递 CMake 自定义参数(如指定编译器、优化选项),可直接在 cmake 命令中添加:
bashdocker run -it --rm \ -v ~/lammps-src:/workspace/lammps \ -v ~/lammps-build:/workspace/build \ lammps/build-env:latest \ /bin/bash -c "cd /workspace/lammps/build && cmake -DCMAKE_CXX_COMPILER=g++-10 -DCMAKE_BUILD_TYPE=Release .. && make -j4"
编译完成后,可执行文件 lmp 会生成在挂载的输出目录(如 ~/lammps-build),直接在宿主机使用:
bashmpirun -np 4 ~/lammps-build/lmp -in input script.lammps # 使用 MPI 并行运行
创建 docker-compose.yml 简化多参数配置:
yamlversion: '3' services: lammps-build: image: lammps/build-env:latest volumes: - ./lammps-src:/workspace/lammps # 本地源码目录 - ./lammps-build:/workspace/build # 输出目录 environment: - WITH_MPI=ON - WITH_OPENMP=ON - EXTRA_PACKAGES=KIM,REAXFF command: > /bin/bash -c "cd /workspace/lammps && mkdir -p build && cd build && cmake .. && make -j$$(nproc)"
启动构建:
bashdocker-compose up
| 参数名 | 默认值 | 描述 |
|---|---|---|
CMAKE_BUILD_TYPE | Release | 编译类型(Debug/Release/RelWithDebInfo),影响优化级别和调试信息 |
MPI_IMPL | openmpi | MPI 实现(openmpi/mpich) |
GPU_ARCH | sm_60 | GPU 架构(如 sm_70 对应 NVIDIA Volta,需与宿主机 GPU 匹配) |
通过 EXTRA_PACKAGES 指定需编译的扩展包(逗号分隔),支持的常用包包括:
KIM(原子间势函数接口)REAXFF(反应力场)ML-Potentials(机器学习势函数)ASPHERE(非球形粒子模拟)BODY(刚体模拟)WITH_GPU=ON 时,需确保宿主机已安装 NVIDIA Docker 运行时(nvidia-docker),并通过 --gpus all 暴露 GPU 设备:
bashdocker run --gpus all -it --rm ... # 添加 --gpus 参数启用 GPU
--user $(id -u):$(id -g) 指定用户 ID 与宿主机一致:
bashdocker run -it --rm --user $(id -u):$(id -g) -v ~/lammps-src:/workspace/lammps ...
lammps/build-env:dev 镜像(对应 LAMMPS 开发分支)。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务