大家好,我是缴鸿剑Jackson

不知道你是否经历过这样的至暗时刻:当你满怀信心地写完代码,准备在服务器上部署时,却遭遇了“环境不一致”的暴击——明明在本地跑得好好的,到了测试环境却死活起不来;当你换了新电脑,不得不花一整天时间重装MySQL、Redis、Nginx,重复那些繁琐的配置;当你想给同事展示一个开源项目,却因为复杂的依赖关系而最终放弃……

如果你对这些场景感到共鸣,那么恭喜你,今天你将打开一扇新世界的大门。本系列文章将带你走进Docker的世界,一个能够让“Build once, Run anywhere(一次构建,处处运行)”成为现实的神奇工具。


为什么是Docker?

在2026年的今天,云原生技术已经成为了后端开发的基石,而Docker正是这艘巨轮的压舱石。无论你是初入职场的新手,还是身经百战的老兵,Docker都已成为技术生涯中绕不开的核心技能。

传统的虚拟化技术,如VMware或VirtualBox,虽然提供了隔离环境,但它们模拟的是整个硬件系统,不仅笨重(通常几个GB),而且启动缓慢(以分钟计)。Docker则完全不同,它不是虚拟化,而是轻量级的容器化。它直接与操作系统内核打交道,利用Linux内核的namespace和cgroups技术,实现了进程级别的隔离。

这意味着什么?

  • 轻量级:容器镜像通常只有几十到几百MB,启动速度是秒级的。

  • 高效:几乎没有性能损耗,因为你不需要为每个应用单独运行一个操作系统。

  • 一致性强:从开发环境到生产环境,Docker容器提供了一致的运行环境,彻底告别“我这里没问题啊”的甩锅大战。


你将在这个系列中学到什么?

如果你是一位开发者或运维人员,常常被困在部署各种服务器环境的重复劳动中,或者因为项目增长导致开发环境臃肿混乱,Docker将为你提供一套优雅的解决方案。本系列不是枯燥的官方文档翻译,而是一套从零到一的实战指南。我们将涵盖:

  1. Docker核心概念:轻松搞懂镜像、容器、仓库这三大核心要素,让你明白它们是如何像“集装箱”一样,将你的应用程序及其依赖打包在一起的。

  2. 手把手安装与配置:涵盖Windows、macOS和主流Linux发行版,解决你可能遇到的网络和权限坑。

  3. 常用命令精讲:告别死记硬背,通过实战理解docker runpsbuild等核心命令的精髓。

  4. 实战编写Dockerfile:学习如何将你的Java/Go/Python/Node.js应用“镜像化”。

  5. 数据卷与网络:详解容器如何持久化数据,以及容器之间如何高效通信。

  6. 编排利器Docker-Compose:一键启动复杂的多容器项目(比如:SpringBoot + MySQL + Redis)。


写在前面

容器技术虽然能提供资源隔离和一定程度的保护,但并非万能的安全方案。在生产环境中,请谨慎使用来源不明的镜像。不过别担心,在后续的文章中,我也会分享关于镜像安全的最佳实践。

技术学习最好的时间是十年前,其次就是现在。Docker技术本身并不复杂,它之所以流行,是因为它完美地解决了软件开发中“最后一公里”的交付难题。无论你是因为工作需要,还是仅仅出于对技术的好奇,只要你跟着这个系列动手实践,一定能在几分钟内跑起你的第一个容器,几小时内搭建起完整的开发环境。

如果你准备好了,就请泡上一杯咖啡,让我们一起扬帆起航,探索这片充满可能性的容器蓝海。关注我,系列文章持续更新,不错过每一次进步。

目录

一.安装docker

1.卸载旧版本docker(以防万一)

2.配置Docker的yum库

3.安装docker

4.查看docker是否安装成功

5.启动docker

二.配置镜像加速器

1.为什么要配置镜像加速器?

2.如何配置?(我们此时选择配置阿里的镜像加速器)

①登录阿里云官网

②找到镜像加速器的配置命令

③直接粘贴上述命令即可

④验证配置文件是否修改

⑤重新加载配置文件、重启docker服务

⑥查看镜像加速器配置是否生效

三.docker架构

三个核心的概念


一.安装docker

1.卸载旧版本docker(以防万一)

yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine \
    docker-selinux 

效果展示

2.配置Docker的yum库

//1、首先要安装一个yum工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
 
//2、安装成功后,执行命令,配置Docker的yum源(已更新为阿里云源)
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
 
//3、更新yum,建立缓存
sudo yum makecache fast

3.安装docker

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

执行上述命令,效果如下

4.查看docker是否安装成功

docker -v

如下图,出现了版本号,则表示成功安装了。

5.启动docker

# 启动Docker
systemctl start docker
 
# 停止Docker
systemctl stop docker
 
# 重启
systemctl restart docker
 
# 设置开机自启
systemctl enable docker
 
# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps

举例

二.配置镜像加速器

1.为什么要配置镜像加速器?

默认情况下,将来从docker hub(https://hub.docker.com/)下载docker镜像,太慢。一般都会配置镜像加速器:

2.如何配置?(我们此时选择配置阿里的镜像加速器)

①登录阿里云官网

阿里云-计算,为了无法计算的价值https://cn.aliyun.com/

②找到镜像加速器的配置命令

③直接粘贴上述命令即可

注意是整体粘贴,别一行一行粘贴。

④验证配置文件是否修改

cat /etc/docker/daemon.json
查看这个文件的内容

⑤重新加载配置文件、重启docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker

⑥查看镜像加速器配置是否生效

docker info | grep -A 5 "Registry Mirrors"

三.docker架构

这张图展示了 Docker 的核心架构,包括客户端、主机、容器、镜像以及镜像仓库之间的关系。下面是对图中各个部分的详细解释:


1. Docker 客户端(Clients)

  • docker:用户通过 Docker 命令行工具(CLI)与 Docker 守护进程进行交互,发送命令如 docker rundocker pull 等。


2. 主机(Hosts)

Docker 可以运行在本地主机和远程主机上,每台主机上都有一个 Docker 守护进程(daemon)负责管理容器和镜像。

本地主机(Local host)

  • daemon:运行在本地的 Docker 引擎。

  • 容器

    • container 1 使用 image 1

    • container 3a 使用 image 3

    • container 3b(也使用 image 3,说明多个容器可以共享同一个镜像)

远程主机(Remote host)

  • daemon:运行在远程的 Docker 引擎。

  • 容器

    • container 3 使用 image 3

    • container 5 使用 image 5

    • container 6 使用 image 6


3. 镜像仓库(Registries)

镜像仓库用于存储和分发 Docker 镜像。

Docker Hub(公共仓库)

  • repository 1

    • image 1

    • image 2

  • repository 2

    • image 3

    • image 4

私有仓库(Private registry)

  • repository

    • image 5

    • image 6


4. 关系说明

  • 本地和远程主机的容器都是从镜像创建的。

  • 镜像可以从 Docker Hub 或 私有仓库 中拉取(docker pull)。

  • 同一个镜像(如 image 3)可以被多个容器使用,甚至跨不同主机。

  • 容器运行在 Docker 守护进程之上,由守护进程负责容器的生命周期管理。

三个核心的概念

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐