【bash】笔记

在Shell脚本中,-e 是一个测试运算符,用于检查给定的文件或目录是否存在。

| 是通道符,会把前面的输出给后面作为输入。

sudo tee命令在这里用于同时更新文件和在终端显示输出(尽管 > /dev/null 将标准输出重定向到黑洞,即不显示任何内容)。这样做的目的是在不影响用户交互的情况下安全地更新系统设置。


在Shell脚本中,$0是一个特殊变量,它代表脚本本身的文件名(包含路径)。当脚本被执行时,$0就保存了这个脚本的名字。这在脚本内部需要引用脚本名称或者路径时非常有用,比如在打印日志、错误信息或者像上面提到的帮助信息中显示脚本名。

在Shell脚本中,$#是一个特殊变量,表示传递给脚本或函数的参数个数。

-gt 是大于(greater than)的比较运算符。

在Shell脚本中,$1是一个特殊变量,它代表传递给脚本或函数的第一个命令行参数。当你运行一个脚本并提供一些参数,$1将存储第一个参数的值,$2存储第二个参数,以此类推,$0存储脚本本身的名字。

-z 后面么有就是真。

所以,如果${DOCKER_REPO}没有被设置或者值为空,脚本将把DOCKER_REPO设置为apolloauto/apollo。这确保了在没有指定Docker镜像仓库的情况下,有一个默认的仓库值可供使用。

在Docker容器内使用CUDA,你需要确保几个关键步骤都已完成:

  1. 使用支持CUDA的Docker镜像 :首先,你需要一个包含CUDA和NVIDIA驱动的Docker镜像。NVIDIA提供了官方的CUDA镜像,这些镜像是基于不同的基础镜像(如Ubuntu、Debian等)构建的,并且已经包含了CUDA和NVIDIA驱动。你可以通过docker pull命令从Docker Hub拉取这些镜像。

  2. 启用NVIDIA Docker插件:NVIDIA Docker工具包允许你在Docker中充分利用NVIDIA GPU。你需要安装NVIDIA Container Toolkit,它提供了运行CUDA容器所需的驱动和库。

  3. 设置环境变量 :在运行Docker容器时,可以通过-e选项设置环境变量,比如CUDA_VISIBLE_DEVICES来指定哪个GPU可以被容器看到和使用。

  4. 挂载CUDA库 :如果需要访问主机上的CUDA安装,可以通过-v选项挂载CUDA库的路径,如/usr/local/cuda,这样容器内可以访问到这些库。不过,通常情况下,如果你使用的是带有CUDA的预配置镜像,这些库应该已经包含在镜像内。

一个基本的Docker运行命令可能如下所示:

  • --gpus all 允许容器访问所有的GPU。
  • -e CUDA_VISIBLE_DEVICES=0 设置环境变量,指定GPU 0 可见。
  • -v /usr/local/cuda:/usr/local/cuda 挂载主机上的CUDA路径到容器内。

docker run

--gpus all

-e CUDA_VISIBLE_DEVICES=0

-v /usr/local/cuda:/usr/local/cuda -it nvidia/cuda:11.0-base bash


-v /usr/local/cuda:/usr/local/cuda

相关推荐
一隅论数智5 小时前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
深圳老胡8 小时前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
Because_of_Her18 小时前
并查集-听课笔记
笔记·算法·并查集
彧azz8 小时前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
陈卫军老师9 小时前
陈卫军:把口味写在一张纸上,店才稳得住
经验分享·笔记·流量运营
`流年づ10 小时前
人工智能学习笔记 - 补充
人工智能·笔记·深度学习·学习
qeen8710 小时前
【Linux】操作系统之进程介绍(二)
linux·笔记·学习·进程
从零开始的嵌入式之旅10 小时前
day47
arm开发·经验分享·笔记·嵌入式硬件
陈年老古董11 小时前
MediaPipe 姿态检测与脸部关键点检测
笔记·python·opencv·学习·dlib
彧azz11 小时前
操作系统时间管理与系统核心板块学习总结
c语言·笔记·学习·系统架构