一、什么又是Docker:

你可以把 Docker 理解成一个“应用程序的打包盒”。


举个生活例子 🌰

假设你是一个厨师,做了一道复杂的菜(比如佛跳墙),想让别人在不同的厨房(比如朋友家、餐厅)也能完美复刻这道菜。传统方法你需要:

  1. 写一份超长的菜谱(安装步骤)
  2. 告诉对方准备一模一样的锅、调料、火候(环境配置)
  3. 对方稍微用错调料或火候,菜就失败了(环境不一致问题)

而用Docker的做法是:

  1. 你直接把做好的整道菜(包括调料、火候参数)装进一个密封盒
  2. 别人拿到这个盒子,直接加热就能吃,味道和你做的一模一样
  3. 这个盒子里不包含整个厨房,只装必要的东西,轻便高效

1、Docker解决了什么痛点?

  1. “在我电脑上能运行,到你那就报错”
    • 传统开发中,环境配置差异导致程序抽风,Docker直接把环境和代码一起打包,杜绝玄学问题。
  2. “装个软件要先装10个依赖,烦死了”
    • Docker一键安装打包好的“软件全家桶”,无需手动折腾环境。
  3. “服务器资源不够用”
    • 比起虚拟机(VM),Docker更轻量,一台服务器能同时跑几十个应用,不浪费资源。

2、技术黑话翻译

生活比喻 Docker术语 作用
密封的菜品打包盒 容器(Container) 独立运行的应用环境
菜的标准制作流程 镜像(Image) 容器的模板(比如“佛跳墙镜像”)
中央厨房仓库 Docker Hub 存放现成镜像的“超市”
不同厨房的灶台 宿主机(Host) 实际运行Docker的电脑/服务器

3、和虚拟机的区别(重点!)

  • 虚拟机:相当于在电脑里模拟一整套新电脑(CPU、内存、系统全复制),笨重又占资源。
    • ❌ 每个虚拟机独占资源
    • ❌ 启动慢(分钟级)
    • ✅ 完全隔离,安全性高
  • Docker:直接共用宿主机的系统内核,只打包必要环境。
    • ✅ 轻量(MB级)、启动快(秒级)
    • ✅ 一台服务器能跑上百个容器
    • ❌ 隔离性稍弱(但日常够用)

4、什么时候用Docker?

  1. 开发测试:避免“我本地没问题”的甩锅大战
  2. 微服务架构:每个服务独立打包,互不干扰
  3. 持续集成:自动化构建、测试、部署一条龙
  4. 边缘计算:在资源有限的设备上快速部署应用

一句话总结
Docker就是给应用程序套个保鲜膜,让它不管在哪都能以同样的方式运行,彻底告别“环境依赖”的魔咒。


二、怎么玩转Docker:

1、安装脚本

# 由「Docker_官网」提供
bash <(curl -sSL https://linuxmirrors.cn/docker.sh)
 
# 由「LinuxMirrors_Github」提供
bash <(curl -sSL https://raw.githubusercontent.com/SuperManito/LinuxMirrors/main/DockerInstallation.sh)
 
# 由「LinuxMirrors_Gitee」提供
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/DockerInstallation.sh)



# 由「技术派爬爬虾_Gitee」提供
sudo curl -fsSL https://gitee.com/tech-shrimp/docker_installer/releases/download/latest/linux.sh| bash -s docker --mirror Aliyun

# 由「1Panel」提供
sudo curl https://install.1panel.live/docker-install -o docker-install && sudo bash ./docker-install && rm -f ./docker-install

2、常用配置

cat <<EOF >/etc/docker/daemon.json
{
       "log-driver": "json-file",
       "log-opts": {
       "max-size": "20m",
       "max-file": "3"
       },


       "dns": [
               "1.1.1.1",
               "223.5.5.5"
       ],


       "exec-opts": [
               "native.cgroupdriver=systemd"
       ],


       "live-restore": true,
       "registry-mirrors": [
               "https://docker.1panel.live/",
               "https://registry.example.com/",
               "https://docker.m.daocloud.io/",
               "https://8jl29epx.mirror.aliyuncs.com",
               "https://ccr.ccs.tencentyun.com"
       ]
}
EOF

「低效的勤奋是懒惰的遮羞布,粗糙的完成是执行的绊脚石」