大家好,我是你们的技术伙伴。👋
在2026年的今天,如果你还在为“开发环境”和“生产环境”的差异而头疼,或者还在手动配置繁琐的依赖库,那么你真的需要了解一下Docker。
Docker是一个基于Go语言开发的开源应用容器引擎。它让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows机器上。“一次构建,到处运行”,这不仅仅是一句口号,更是Docker带给我们最直观的体验。
今天,我将带你走进Docker的世界。我们将从最基础的概念讲起,手把手教你安装配置,并最终完成一个企业级应用(Milvus向量数据库)的部署。
🐳 第一部分:Docker入门基础——重新定义应用交付
1.1 什么是Docker?
简单来说,Docker是一个用于开发、传送和运行应用程序的开放平台。它利用Linux内核的容器化技术(如cgroups和namespaces),实现了应用与基础设施的分离。
为什么我们要用Docker?
- 环境一致性:彻底解决“在我电脑上好好的,在服务器上就挂了”的经典难题。
- 资源利用率高:相比虚拟机,Docker容器共享主机内核,更加轻量级,启动几乎是秒级的。
- 微服务与AI的基石:在微服务架构和AI模型部署(如RAG架构)中,Docker是实现服务隔离和快速扩展的核心。
1.2 Docker的三大核心概念
这是理解Docker的基石,请务必牢记:
⚙️ 第二部分:Docker安装与环境配置(CentOS篇)
工欲善其事,必先利其器。在CentOS系统上安装Docker是很多运维人员的日常。这里我为你准备了自动化安装和手动安装两种方案,并特别提供了国内镜像源,解决网络卡顿问题。
2.1 自动化安装(推荐)
这是最省心的方式,利用官方脚本自动检测并安装。
# 官方一键安装(需科学上网)
curl -fsSL https://get.docker.com | bash -s docker –mirror Aliyun
# 国内DaoCloud一键安装(备选)
curl -sSL https://get.daocloud.io/docker | sh
2.2 手动安装(适合定制化需求)
如果你需要指定版本或进行更精细的控制,可以使用以下步骤:
# 1. 安装依赖工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 2. 配置阿里云镜像源(关键步骤,加速下载)
yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
# 3. 安装 Docker 引擎
sudo yum install docker-ce docker-ce-cli containerd.io
2.3 常见坑点与解决
在安装过程中,你可能会遇到 Cannot connect to the Docker daemon 的错误。
- 原因:Docker服务未启动,或者系统中默认安装了Podman(RedHat系的容器工具)。
- 解决:
- 启动服务:systemctl start docker
- 设置开机自启:systemctl enable docker
- 如果提示权限或连接问题,可以尝试配置别名兼容Podman:alias docker=podman(需添加到 .bashrc 中)。
🛠️ 第三部分:Docker核心操作实战——镜像与容器管理
掌握了安装,接下来就是日常使用中最频繁的操作:镜像和容器的管理。
3.1 镜像操作(Image)
镜像是容器的源头,学会管理镜像是第一步。
- 搜索镜像:docker search ubuntu (查找官方仓库中的镜像)
- 拉取镜像:docker pull ubuntu:22.04 (下载指定版本)
- 查看镜像:docker images (列出本地所有镜像)
- 删除镜像:docker rmi 镜像ID (清理不用的镜像,释放空间)
- 保存/加载:docker save 镜像名 -o xxx.tar (用于离线迁移)
3.2 容器操作(Container)
容器是镜像的运行时状态,这部分命令是面试和实战的高频考点。
- 运行容器:
# 交互式运行(前台)
docker run -it ubuntu:22.04 /bin/bash
# 后台守护式运行(常用)
docker run -itd –name=my_ubuntu ubuntu:22.04
# 端口映射运行(Web服务必备)
docker run -d -p 8080:80 nginx
- 查看容器:
- docker ps:查看运行中的容器。
- docker ps -a:查看所有容器(包括已停止的)。
- 生命周期管理:
- docker start/stop/restart 容器ID:启动/停止/重启。
- docker rm 容器ID:删除容器(注意:删除前需停止)。
- docker exec -it 容器ID /bin/bash:进入正在运行的容器(推荐,不会导致容器停止)。
🏗️ 第四部分:自动化构建与Dockerfile
如果每次部署都要手动进入容器配置环境,那和没用Docker没什么区别。Dockerfile 是实现自动化构建的关键。
4.1 什么是Dockerfile?
Dockerfile是一个文本文件,其中包含了一系列指令,告诉Docker如何自动构建镜像。
一个典型的Python应用Dockerfile示例:
# 1. 指定基础镜像
FROM python:3.9-slim
# 2. 维护者信息
LABEL maintainer="your_email@example.com"
# 3. 设置工作目录
WORKDIR /app
# 4. 复制文件到镜像中
COPY requirements.txt .
COPY app.py .
# 5. 安装依赖(使用国内源加速)
RUN pip install –no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 6. 暴露端口
EXPOSE 5000
# 7. 容器启动时运行的命令
CMD ["python", "app.py"]
4.2 构建与运行
编写好Dockerfile后,在同级目录执行:
# 构建镜像,-t 指定名称和标签
docker build -t my_python_app:1.0 .
# 运行容器
docker run -d -p 5000:5000 my_python_app:1.0
🚀 第五部分:实战演练——使用Docker部署Milvus向量数据库
在AI 2.0时代,向量数据库(如Milvus)是RAG(检索增强生成)系统的核心。Docker是部署Milvus最简单的方式。
5.1 准备工作
Milvus依赖较多(如etcd, MinIO),我们通常使用 docker-compose 来一键管理多个容器。
安装Docker Compose(如果未安装):
# 下载最新版(2026年建议使用V2+)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
配置镜像加速器(解决拉取慢的问题):
在 /etc/docker/daemon.json 中添加国内镜像源:
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1ms.run"
]
}
重启Docker:systemctl restart docker
5.2 部署Milvus
# -d 参数表示后台运行
docker-compose -f docker-compose.yml up -d
- 报错:Fail connecting to server on localhost:19530
- 原因:容器启动需要时间,或者内存不足。
- 解决:等待1-2分钟,使用 docker-compose ps 查看容器状态是否为 healthy。
📌 结语:我的独家见解
写在最后,分享几点我在使用Docker过程中的感悟,希望能给你带来启发:
希望这篇指南能帮你打开Docker的大门。如果你觉得有用,可以点赞、收藏、关注!


