news 2026/1/12 21:37:27

Docker安装配置与基础操作指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker安装配置与基础操作指南

Docker 安装配置与基础操作指南

在现代 AI 开发中,环境配置往往是令人头疼的第一道门槛。你是否曾为 PyTorch 版本不兼容、CUDA 驱动错配或依赖包冲突而耗费数小时?Docker 的出现正是为了终结这种“在我机器上能跑”的窘境。

作为一款开源的应用容器引擎,Docker 允许开发者将应用及其完整依赖打包进一个可移植的镜像中,真正做到“一次构建,处处运行”。它基于 Linux 内核的cgroupsnamespaces技术实现资源隔离,在操作系统层面完成轻量级虚拟化——相比传统虚拟机,启动更快、占用更少、部署更灵活。

本文将以实战为导向,带你从零搭建 Docker 环境,并结合一个真实 AI 项目:YOLOFuse 多模态目标检测社区镜像,演示如何利用预配置容器快速开展推理与训练任务,跳过繁琐的环境折腾,直接进入核心开发环节。


支持平台与系统要求

Docker 拥有广泛的平台支持,涵盖主流操作系统:

  • Linux:CentOS、Ubuntu、Debian、Fedora、RHEL
  • macOS
  • Windows 10/11(需启用 WSL2)

对于 Linux 用户,内核版本需不低于 3.10。可通过以下命令确认当前系统版本:

uname -r

示例输出:5.4.0-91-generic

若版本过低,建议优先升级内核或更换发行版。尤其在 CentOS 7 上部署时,注意其默认内核可能较旧,容易导致兼容性问题。


Docker CE vs EE:版本选择建议

自 2017 年起,Docker 推出两个主要版本线:

类型全称适用场景
CECommunity Edition(社区版)个人开发、学习、测试
EEEnterprise Edition(企业版)生产环境,含商业支持

两者均按YY.MM格式命名稳定版本(如24.06表示 2024 年 6 月发布),更新频率均为每季度一次。

版本类型更新频率安全维护周期
CE每季度一次4 个月
EE每季度一次1 年

对于绝大多数开发者而言,Docker CE 已完全够用。只有在需要高可用编排、安全审计和长期支持的企业级场景下才考虑 EE。

📌 补充知识:Docker 的上游开源项目是 Moby,它提供了构建容器系统的模块化工具集。

如果你计划将 Docker 与 Kubernetes 集成,请务必参考 k8s 官方文档中的运行时兼容性列表,避免因版本不匹配引发调度异常。


CentOS 安装方式一:通过 YUM 添加阿里云源(推荐)

在 CentOS 7/8 环境中,推荐使用 yum 包管理器配合国内镜像源安装,速度远超官方源。

# 安装必要工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 添加阿里云 Docker CE 仓库 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 更新缓存并安装最新版 Docker CE sudo yum makecache fast sudo yum -y install docker-ce # 启动服务并设置开机自启 sudo systemctl start docker sudo systemctl enable docker

✅ 验证安装成功:
执行docker version应同时显示 Client 和 Server 的版本信息。

如何查看可安装版本?

yum list docker-ce.x86_64 --showduplicates | sort -r

输出示例:

docker-ce.x86_64 3:24.06.1-1.el7 @docker-ce-stable docker-ce.x86_64 3:24.05.0-1.el7 @docker-ce-stable ...

你可以指定版本进行安装,例如:

sudo yum -y install docker-ce-20.10.24 docker-ce-cli-20.10.24 containerd.io

这在生产环境中尤为重要——确保集群节点版本一致,防止意外升级破坏稳定性。


Ubuntu 安装步骤详解(18.04+ LTS 推荐)

适用于 Ubuntu 18.04、20.04、22.04 等长期支持版本。

# 卸载旧版本(如有) sudo apt-get remove docker docker-engine docker.io containerd runc # 更新索引并安装依赖 sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common # 添加阿里云 GPG 密钥 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - # 添加阿里云 APT 源 sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" # 安装 Docker CE sudo apt-get update sudo apt-get -y install docker-ce docker-ce-cli containerd.io

查看可用版本

apt-cache madison docker-ce

输出类似:

docker-ce | 5:24.06.1~3-0~ubuntu-jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages

同样支持指定版本安装。

启动与验证

sudo systemctl start docker sudo systemctl enable docker

最后运行docker version确认客户端和服务端均已正常启动。


常见问题修复:Python 软链接缺失

在某些精简系统或定制镜像中,可能会遇到如下错误:

/usr/bin/python: No such file or directory

这是因为系统只安装了python3,但未创建通用的python命令软链接。解决方法很简单:

ln -sf /usr/bin/python3 /usr/bin/python

⚠️ 注意:该操作仅对当前会话有效。若需永久生效,建议将其写入初始化脚本(如.bashrc或容器启动脚本)。


解读docker info输出信息

执行docker info可获取引擎详细状态,是排查问题的重要依据。以下是关键字段解析:

Containers: 1 Running: 1 Paused: 0 Stopped: 0 Images: 3 Server Version: 24.06.1 Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: v1.6.21 runc version: 1.1.12 Kernel Version: 5.4.0-91-generic Operating System: Ubuntu 20.04.6 LTS Architecture: x86_64 CPUs: 4 Total Memory: 15.6GiB Name: host-machine ID: ABCD:EFGH:IJKL:MNOP:QRST:UVWX:YZAB:CDEF:GHIJ:KLMN:OPQR:STUV Docker Root Dir: /var/lib/docker Registry: https://index.docker.io/v1/ Labels: Experimental: false Insecure Registries: 127.0.0.0/8 Registry Mirrors: https://xxx.mirror.aliyuncs.com/ Live Restore Enabled: false
字段说明
Storage Driver推荐使用overlay2,性能最优且广泛支持
Supports d_type必须为true,否则无法正确处理联合文件系统
Docker Root Dir所有镜像、容器数据存储位置,注意磁盘空间规划
Registry Mirrors镜像加速地址,直接影响 pull 效率

如果发现Supports d_type: false,通常意味着底层文件系统不是 ext4/xfs,可能导致容器启动失败。


配置镜像加速器(国内用户必做)

由于网络原因,直接从 Docker Hub 拉取镜像往往非常缓慢。强烈建议配置国内镜像加速服务,尤其是阿里云用户提供专属加速地址。

获取加速地址

登录 阿里云容器镜像服务控制台,即可看到你的专属 HTTPS 加速地址(形如https://xxxx.mirror.aliyuncs.com)。

配置 daemon.json

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://jcmwo9z2.mirror.aliyuncs.com"] } EOF # 重载配置并重启 sudo systemctl daemon-reload sudo systemctl restart docker

✅ 验证是否生效:
再次运行docker info,检查Registry Mirrors是否已加载你配置的地址。


镜像管理常用命令

Docker 镜像是静态模板,用于创建容器实例。掌握基本的镜像操作是日常开发的基础。

搜索镜像

docker search alpine

返回结果包括名称、描述、星标数及是否为官方镜像(OFFICIAL=OK)。

下载镜像

# 拉取指定标签 docker pull nginx:1.16.1 # 拉取最新版 docker pull ubuntu:latest

查看本地镜像

docker images

输出列含义:

列名说明
REPOSITORY镜像仓库名
TAG版本标签
IMAGE ID唯一标识符
CREATED创建时间
SIZE镜像大小

导出与导入镜像(跨主机迁移)

# 导出为 tar.gz 文件 docker save nginx:1.16.1 -o /opt/nginx.tar.gz docker save alpine | gzip > /opt/alpine.tar.gz # 从文件加载 docker load -i /opt/nginx.tar.gz gunzip -c /opt/alpine.tar.gz | docker load

这个技巧非常适合离线部署或 CI/CD 中缓存中间镜像。

删除镜像

# 按 ID 或名称删除 docker rmi a187dde48cd2 docker rmi alpine:latest # 强制删除(即使被容器引用) docker rmi -f nginx

❗ 注意:正在运行的容器所使用的镜像不能直接删除,必须先停止并移除相关容器。


实战案例:YOLOFuse 多模态目标检测镜像使用指南

现在我们进入实际应用场景。假设你要参与一个红外与可见光融合的目标检测项目,传统的做法是从头配置 CUDA、PyTorch、Ultralytics 框架……但现在,只需一条命令即可拥有完整环境。

欢迎使用YOLOFuse 社区镜像!这是一个基于 Ultralytics YOLO 构建的预配置容器,专为 RGB + 红外双流检测设计,开箱即用,无需任何环境配置。

核心优势

  • ⚡️ 零依赖配置:PyTorch、CUDA、OpenCV 等全部预装,代码位于/root/YOLOFuse
  • 🛠 多种融合策略:支持决策级、特征级(早期/中期)等多种融合方式
  • 📊 性能优越:在 LLVIP 数据集上表现优异,尤其适合低光照、烟雾等复杂场景

目录结构说明

进入容器后,主要工作路径如下:

路径/文件功能说明
/root/YOLOFuse/项目根目录
train_dual.py双流训练脚本
infer_dual.py推理测试脚本
runs/fuse训练输出目录(权重、日志、曲线图)
runs/predict/exp推理结果保存路径(带框标注图片)

快速开始三步走

第一步:修复 Python 软链接(首次运行)

若提示找不到python命令,请执行:

ln -sf /usr/bin/python3 /usr/bin/python
第二步:运行推理 Demo

立即体验效果:

cd /root/YOLOFuse python infer_dual.py

运行结束后,前往/root/YOLOFuse/runs/predict/exp查看生成的检测图像,直观感受融合模型的能力。

第三步:启动训练

使用内置 LLVIP 数据集直接训练:

cd /root/YOLOFuse python train_dual.py

训练过程的日志和最佳权重将自动保存至runs/fuse目录,便于后续分析和调优。


如何训练自己的数据集?

虽然镜像已包含 LLVIP 数据集,但你当然也可以用自己的数据进行训练。

1. 数据组织格式

请按照以下结构整理数据(建议上传至/root/YOLOFuse/datasets/your_dataset):

your_dataset/ ├── images/ # 存放 RGB 图像 │ └── 001.jpg ├── imagesIR/ # 存放红外图像(必须与RGB同名) │ └── 001.jpg └── labels/ # YOLO 格式 txt 标注文件 └── 001.txt

⚠️ 关键点:RGB 与 IR 图像必须一一对应且文件名相同!

2. 修改配置文件

找到项目的配置文件(通常在cfg/data.yamldata/目录下),更新pathtrainval等路径指向你的数据集。

3. 再次运行训练脚本
python train_dual.py

即可开始训练专属模型。


不同融合策略性能对比(LLVIP 基准)

策略mAP@50模型大小特点
中期特征融合94.7%2.61 MB✅ 推荐:参数最少,效率最高
早期特征融合95.5%5.20 MB精度略高,适合小目标检测
决策级融合95.5%8.80 MB鲁棒性强,计算开销较大
DEYOLO95.2%11.85 MB学术前沿实现,资源消耗大

根据你的硬件条件和精度需求合理选择策略。一般情况下,“中期融合”已是性价比极佳的选择。


常见问题解答(FAQ)

Q:终端报错/usr/bin/python: No such file or directory
A:执行ln -sf /usr/bin/python3 /usr/bin/python即可修复。

Q:我只有 RGB 图片,没有红外数据怎么办?
A:YOLOFuse 是专为双模态设计的。若仅有单模态数据,建议改用原版 YOLOv8;若仅为测试流程,可复制一份 RGB 数据到imagesIR目录(仅形式上满足结构,无实际融合意义)。

Q:推理结果图片保存在哪里?
A:请查看/root/YOLOFuse/runs/predict/exp目录。


如果你觉得这个镜像对你有所帮助,欢迎访问 GitHub 给作者点个 Star ⭐️

https://github.com/WangQvQ/YOLOFuse

这种以预构建镜像为核心的开发模式,正在成为 AI 工程化的标准实践之一——把环境问题交给容器,把创造力留给算法。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/26 14:57:09

Java图形验证码生成方案

Java图形验证码生成方案&#xff1a;从原理到实战的深度解析 在如今自动化攻击日益猖獗的背景下&#xff0c;验证码早已不再是简单的“输入图片上的字母”那么简单。无论是登录页、注册流程还是优惠券领取&#xff0c;一个设计精良的验证码系统&#xff0c;往往是抵御机器人批…

作者头像 李华
网站建设 2026/1/11 12:46:31

将Forest应用的默认数据库从DERBY切换到MySQL

DDColor黑白老照片智能修复&#xff1a;支持人物和建筑物的修复工作流 处理老照片时最让人头疼的不是划痕或模糊&#xff0c;而是那种“隔着时光”的苍白感——明明是亲人的笑脸、老街的轮廓&#xff0c;却只能靠想象去填补颜色。最近我用 ComfyUI 搭了一套基于 DDColor 的黑白…

作者头像 李华
网站建设 2025/12/29 14:30:29

Windows下安装TensorFlow-GPU 2.2.0避坑指南

Windows下安装TensorFlow-GPU 2.2.0避坑指南 在深度学习项目开发中&#xff0c;本地环境配置往往是第一步也是最“折磨人”的一步。尤其是当你满怀热情准备跑通第一个模型时&#xff0c;却被一个 ImportError: DLL load failed 或者 Could not find cudart64_101.dll 挡住去路…

作者头像 李华
网站建设 2025/12/26 14:54:47

轻钢建筑系统构造与节点详图解析

数字人生成系统的轻钢式构造解析 你有没有试过&#xff0c;把一张静态照片变成一个会说话的人&#xff1f; 不是剪辑&#xff0c;不是特效&#xff0c;而是让AI真正“驱动”这张脸——开口、眨眼、皱眉&#xff0c;仿佛活过来。 这听起来像科幻电影&#xff0c;但今天的技术已经…

作者头像 李华
网站建设 2026/1/9 2:13:42

LabVIEW与myRIO嵌入式开发入门指南

LabVIEW与myRIO嵌入式开发入门指南 在高校实验室、学生创新项目乃至小型工业原型系统中&#xff0c;你是否曾遇到这样的问题&#xff1a;想要快速搭建一个具备实时控制能力的嵌入式系统&#xff0c;却卡在复杂的底层驱动配置和多线程调度上&#xff1f;NI推出的myRIO平台正是为…

作者头像 李华
网站建设 2025/12/26 14:51:04

从规划到监控:PMP方法论赋能低代码流程优化风险管理

在我们利用低代码平台做流程优化实施的时候&#xff0c;很常见的一个场景是需要把一些线下的流程搬到线上&#xff0c;其中比较典型就是审批流程的线上化&#xff0c;以和某个企业合作为例&#xff0c;该企业原采购审批依赖纸质单据和邮件&#xff0c;审批周期长达5天&#xff…

作者头像 李华