在有NVIDIA 4090工作站上配置 Ubuntu 和 Docker【超全面一站式攻略】【理解+实操】

背景介绍

现在没有docker,已经要不配开源代码了。
所以,准备重新配置环境。

什么是Docker

Docker 是一个开源的容器化平台,用于开发、部署和运行应用程序。它的核心思想是:将应用程序及其所有依赖项(代码、运行时环境、系统工具、库等)打包到一个标准化的、可移植的“容器”中。这个容器可以在任何安装了 Docker 的环境中运行,保证环境的一致性。
Docker 的核心在于 容器化。通过将应用及其环境打包成 镜像,然后在隔离的 容器 中运行这些镜像,解决了环境不一致、依赖冲突、部署复杂等问题。使用步骤通常是:安装 Docker -> 获取镜像 (pull) -> 运行容器 (run) -> 管理容器 (ps, stop, rm, logs, exec) -> (可选)编写 Dockerfile 构建自定义镜像 (build)。掌握这些基础后,再学习 Docker Compose 和卷/网络管理能让你更高效地使用 Docker。

核心概念:

镜像:

一个只读的模板,包含了运行应用程序所需的所有文件系统结构、依赖项、代码和配置。镜像是创建容器的“蓝图”。类比:镜像就像安装操作系统的 .iso 文件,或者面向对象编程中的“类”。

容器:

镜像是静态的,容器是镜像的运行实例。当你运行一个镜像时,Docker 会创建一个隔离的环境(容器),其中运行着镜像定义的应用程序。容器是轻量级、可移植、自包含的。类比:容器就像是从 .iso 文件安装好的、正在运行的虚拟机(但比虚拟机轻量得多),或者面向对象编程中类的“实例对象”。

Dockerfile:

一个文本文件,包含了一系列构建 Docker 镜像所需的指令(如安装软件、复制文件、设置环境变量、暴露端口等)。开发者通过编写 Dockerfile 来定义如何构建他们的应用程序镜像。

Registry:

存储和分发 Docker 镜像的服务。Docker Hub 是最著名的公共 Registry,包含大量官方和社区维护的镜像(如 Ubuntu, Nginx, MySQL, Python, Node.js 等)。也可以搭建私有的 Registry(如 Harbor, GitLab Container Registry)。

Docker 的主要优势:

环境一致性:

“一次构建,处处运行”。开发、测试、生产环境完全一致,避免“在我机器上是好的”问题。

隔离性:

容器之间以及容器与宿主机之间是相互隔离的,一个容器的问题不会影响其他容器或主机。

轻量高效:

容器共享宿主机的操作系统内核,无需为每个应用加载完整的操作系统,启动更快,资源占用(CPU、内存、磁盘)远低于虚拟机。

可移植性:

容器可以在任何支持 Docker 的平台上运行(Linux, Windows, macOS, 云服务器)。

标准化:

Docker 提供了构建、分发、运行容器的标准方式。

微服务友好:

非常适合构建和部署微服务架构,每个服务可以独立容器化。

简化配置:

将环境配置固化在镜像或 Docker Compose 文件中。

快速扩展:

可以快速启动多个相同的容器实例以实现水平扩展。

如何在ubuntu系统中使用docker

在 Ubuntu 系统中使用 Docker 时,关于 NVIDIA 驱动、Ubuntu 版本和 Kernel(内核)的配置,需要明确以下几点:

NVIDIA 驱动

宿主机必须安装 NVIDIA 驱动
Docker 容器本身不安装或管理宿主机级别的硬件驱动。
若要在容器内使用 GPU(如运行 CUDA 应用),必须先在 Ubuntu 宿主机上正确安装 NVIDIA 驱动(通过 apt 或官方 .run 文件安装)。

容器内只需安装 CUDA Toolkit
容器内只需安装与应用程序兼容的 CUDA Toolkit 或 cuDNN 库(如 nvidia/cuda 官方镜像已包含)。
容器通过 Docker 的 --gpus 参数调用宿主机的驱动。

Ubuntu 版本

容器内的 Ubuntu 版本独立于宿主机
容器基于镜像运行(如 ubuntu:22.04),与宿主机的 Ubuntu 版本无关。
例如:宿主机是 Ubuntu 20.04,仍可运行 ubuntu:18.04 或 debian:12 的容器。

Kernel(内核)

容器共享宿主机的内核
Docker 容器 不拥有独立的内核,而是直接使用宿主机的 Kernel。
执行 uname -r 在容器内看到的版本与宿主机一致。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值