本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

该容器配合一些实用别名,允许您在与计算机其他部分隔离的容器中构建和运行ldmx-sw及其相关软件,无需安装任何其他依赖。容器通过挂载文件实现与系统共享文件,使您可以继续使用原有的操作系统、文本编辑器、root版本等,而不会影响ldmx-sw的构建和运行。
为了在docker容器上挂载内容,建议定义一个供您和docker容器使用的环境变量:LDMX_BASE。此环境变量的拼写和大小写必须严格如此,因为它将按名称传入docker容器。
在bash中:
export LDMX_BASE=<包含ldmx-sw的目录路径>
为了在ldmx环境(容器内)中运行命令,您需要一个较长的docker命令。建议为该命令定义一个别名,因为在配置/构建/运行工作流中它不会改变。同样在bash中:
alias ldmx='docker run --rm -it -e LDMX_BASE -v $LDMX_BASE:$LDMX_BASE -u $(id -u ${USER}):$(id -g ${USER}) ldmx/dev:latest $(pwd)'
命令各部分解释:
docker:基础docker命令,您需要获得特殊权限以无需root运行docker。或者,您可以在docker前加上sudo(或系统等效命令),但每次运行都需要输入密码。run:运行镜像为容器(而非构建、拉取或推送镜像)--rm:命令完成后删除容器,自动清理(可选)-it:允许主机(您的计算机)向docker容器传递信号(如ctrl-C)-e LDMX_BASE:将当前环境中的LDMX_BASE环境变量传递到容器环境-v $LDMX_BASE:$LDMX_BASE:将$LDMX_BASE目录挂载到容器中的相同位置-u $(id -u ${USER}):$(id -g ${USER}):以当前用户及其组的权限运行docker命令ldmx/dev:latest:用于创建运行容器的镜像$(pwd):镜像的入口点接受两个参数,第一个是容器内的目标目录,其余是要执行的命令。这部分使进入容器后切换到与主机相同的位置,确保命令在预期位置运行。传递给镜像的其余参数是该别名后的内容。完成上述设置后,即可开始进行ldmx-sw的构建、安装和运行等操作。简单理解,ldmx命令的作用是将后续命令放入docker容器中运行。由于已将工作文件挂载到容器的相同位置,容器可以访问并读写这些文件。以下是构建、安装和运行的命令示例:
$ cd ldmx-sw; mkdir build; cd build $ ldmx cmake .. $ ldmx make -j2 install $ ldmx ldmx-app config.py
容器的基本假设是:您已正确定义LDMX_BASE环境变量,且LDMX_BASE内的文件具有特定格式:
$LDMX_BASE ├── ldmx-analysis │ ├── install | | ├── lib (安装时自动创建) | | | ├── python (安装时自动创建) | | ├── bin (安装时自动创建) │ │ ...其他代码/脚本 ├── ldmx-sw │ ├── install | | ├── lib (安装时自动创建) | | | ├── python (安装时自动创建) │ │ ...其他代码/脚本 | ...其他代码/脚本
这确保在构建/安装/运行时,容器能够找到所需的特定文件。入口点脚本用于定义ldmx运行环境,使命令能在其中运行;因此容器需要预先知道各种安装位置,以便将容器的PATH、PYTHONPATH和LD_LIBRARY_PATH指向正确目录。
在大多数系统上,docker以root用户运行,因此其创建的任何文件都归root所有。这在某些共享系统上可能存在问题,如在共享计算资源上使用此系统,请咨询机构IT部门。此外,在个人计算机上,只有使用sudo或通过docker才能删除docker创建的文件。例如,删除之前创建的构建文件:
$ cd ldmx-sw/build $ rm -rf * ...权限被拒绝错误... $ ldmx rm -rf * # 可行
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429