一、什么又是Docker:
你可以把 Docker 理解成一个“应用程序的打包盒”。
举个生活例子 🌰
假设你是一个厨师,做了一道复杂的菜(比如佛跳墙),想让别人在不同的厨房(比如朋友家、餐厅)也能完美复刻这道菜。传统方法你需要:
- 写一份超长的菜谱(安装步骤)
- 告诉对方准备一模一样的锅、调料、火候(环境配置)
- 对方稍微用错调料或火候,菜就失败了(环境不一致问题)
而用Docker的做法是:
- 你直接把做好的整道菜(包括调料、火候参数)装进一个密封盒
- 别人拿到这个盒子,直接加热就能吃,味道和你做的一模一样
- 这个盒子里不包含整个厨房,只装必要的东西,轻便高效
1、Docker解决了什么痛点?
- “在我电脑上能运行,到你那就报错”
- 传统开发中,环境配置差异导致程序抽风,Docker直接把环境和代码一起打包,杜绝玄学问题。
- “装个软件要先装10个依赖,烦死了”
- Docker一键安装打包好的“软件全家桶”,无需手动折腾环境。
- “服务器资源不够用”
- 比起虚拟机(VM),Docker更轻量,一台服务器能同时跑几十个应用,不浪费资源。
2、技术黑话翻译
生活比喻 | Docker术语 | 作用 |
---|---|---|
密封的菜品打包盒 | 容器(Container) | 独立运行的应用环境 |
菜的标准制作流程 | 镜像(Image) | 容器的模板(比如“佛跳墙镜像”) |
中央厨房仓库 | Docker Hub | 存放现成镜像的“超市” |
不同厨房的灶台 | 宿主机(Host) | 实际运行Docker的电脑/服务器 |
3、和虚拟机的区别(重点!)
- 虚拟机:相当于在电脑里模拟一整套新电脑(CPU、内存、系统全复制),笨重又占资源。
- ❌ 每个虚拟机独占资源
- ❌ 启动慢(分钟级)
- ✅ 完全隔离,安全性高
- Docker:直接共用宿主机的系统内核,只打包必要环境。
- ✅ 轻量(MB级)、启动快(秒级)
- ✅ 一台服务器能跑上百个容器
- ❌ 隔离性稍弱(但日常够用)
4、什么时候用Docker?
- 开发测试:避免“我本地没问题”的甩锅大战
- 微服务架构:每个服务独立打包,互不干扰
- 持续集成:自动化构建、测试、部署一条龙
- 边缘计算:在资源有限的设备上快速部署应用
一句话总结:
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