docker 创建容器的时候的坑

本文记录了在使用Git命令窗口创建Docker容器时遇到的问题,包括postgres和redis容器安装失败的情况,原因是容器内部路径错误地加入了Git目录。通过更换为CMD命令窗口,问题得以解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

其实这个题目的话,对于我后面陈述的问题发生的本身并没有太多的联系,但是因为是在docker创建容器的操作之内发生的,所以记录以下

因为网上有些文章有些作者喜欢使用git的命令窗体,说实在的,公司里面用过linux,mac,以至于也习惯了它们的一些操作命令,但是windows的话还是稍微有那么一丢丢的不同的,所以为了适应,我也在我的电脑上选择了使用git的命令窗体来做操作,刚开始的时候任何命令都没有任何问题

但是就在我使用命令创建容器的时候,问题出现了,这里我使用两个例子,一个是postgres,一个是redis

结果两个都是安装失败,而失败的原因我们自己观察我发出来的图片你可以开出来,其实相当于我在做挂载操作的时候,我指定的容器内部路径被强制加入了Git的目录,我这个人吧,骨子里透漏着懒得气息,不怎么喜欢先自己动脑子,想也不想,先自己拷贝下来问题,直接百度,结果根本就没有人和我遇见一样的问题,就算有类似的,似乎也没有什么多大关系,只能自己想咯,后来我就针对到了命令窗体本身,因为本身我使用的就是Git的命令窗体,做个错又是和git有关,所以我直接用cmd命令窗体来操作,结果有趣的事情发生了

一次性成功啊~哎,果然脑子还是得转才行。

转载于:https://www.cnblogs.com/Grace-is-enough/p/9250560.html

<think>好的,用户想在Docker的Rocky Linux容器中安装CUDA,我需要帮他解决这个问题。首先,我得回忆一下相关的步骤。用户可能已经有一些Docker的基础,但可能不熟悉如何在Rocky Linux环境下配置CUDA。 首先,我需要确定Rocky Linux的版本是否支持CUDA。Rocky Linux是RHEL的兼容版本,所以应该和CentOS/RHEL的步骤类似。根据引用[1]和[5],CentOS使用yum安装nvidia-docker2,而Rocky Linux可能也是用dnf或者yum。用户提到的是Rocky Linux 8,所以在安装NVIDIA驱动和CUDA工具包时,可能需要启用EPEL或其他仓库。 然后,安装NVIDIA Container Toolkit是关键,这样Docker才能使用GPU。根据引用[3]和[4],安装nvidia-docker2后需要重启Docker服务,并验证安装。用户的环境是无网络的吗?根据引用[2],如果无网络的话可能需要离线安装,但用户的问题里没有提到,所以假设有网络。 接下来,构建Dockerfile的时候,需要选择合适的基础镜像。NVIDIA提供了CUDA基础镜像,比如nvidia/cuda:12.2.2-base-rockylinux8,这样可以直接使用,避免自己安装CUDA。不过如果用户需要特定版本或者自定义安装,可能需要从Rocky Linux官方镜像开始,然后添加CUDA仓库,安装cuda-toolkit。 另外,用户可能需要验证CUDA是否正确安装,比如在容器中运行nvidia-smi或者编译一个示例程序。这可以确保GPU被正确识别和使用。 需要注意的点包括:确保宿主机已经安装了NVIDIA驱动,Docker配置正确,尤其是daemon.json中的runtime配置。引用[5]中提到修改daemon.json和SELinux设置,可能需要用户处理这些步骤。此外,SELinux可能会引起权限问题,可能需要临时禁用或配置策略。 最后,生成相关问题时要覆盖安装后的验证、离线情况、不同Linux发行版的差异以及常见错误的解决。用户可能后续会遇到驱动不兼容、容器无法访问GPU或者权限问题,所以相关问题需要引导他们进一步排查。</think>### 在Docker的Rocky Linux容器中配置CUDA的步骤 #### 1. **宿主机环境准备** - 确保宿主机已安装NVIDIA驱动和Docker引擎: ```bash # 检查NVIDIA驱动是否正常 nvidia-smi # 安装Docker sudo dnf install docker -y sudo systemctl enable --now docker ``` #### 2. **安装NVIDIA Container Toolkit** 为Docker添加GPU支持,需先配置NVIDIA容器工具包: ```bash # 添加NVIDIA容器仓库 distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo # 安装nvidia-docker2 sudo dnf install -y nvidia-docker2 sudo systemctl restart docker # 重启Docker服务[^1] ``` #### 3. **验证NVIDIA容器工具包** ```bash # 运行测试容器检查GPU是否可见 sudo docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smi ``` 若输出GPU信息,则配置成功[^4]。 --- #### 4. **构建Rocky Linux CUDA容器** 创建`Dockerfile`,选择官方CUDA镜像或手动安装: ```dockerfile # 使用NVIDIA官方CUDA基础镜像(推荐) FROM nvidia/cuda:12.2.2-base-rockylinux8 # 或从Rocky Linux镜像手动安装CUDA # FROM rockylinux:8 # RUN dnf install -y https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo \ # && dnf install -y cuda-toolkit-12-2 ``` 构建并运行容器: ```bash sudo docker build -t rocky-cuda . sudo docker run --rm --gpus all rocky-cuda nvidia-smi ``` --- #### 5. **验证CUDA功能** 在容器内编译CUDA示例程序: ```bash # 进入容器交互模式 sudo docker run -it --gpus all rocky-cuda /bin/bash # 容器内操作 cat <<EOF > sample.cu #include <stdio.h> __global__ void hello() { printf("Hello CUDA\\n"); } int main() { hello<<<1,1>>>(); cudaDeviceSynchronize(); return 0; } EOF # 编译并运行 nvcc sample.cu -o sample ./sample ``` 若输出`Hello CUDA`,则CUDA环境正常[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值