现在后端开发几乎都会接触Docker尤其Go Gin MySQL Redis项目里。很多新人第一次学 Docker会感觉镜像 容器 虚拟化非常抽象。其实Docker 的核心思想并不复杂。一、Docker 到底是什么一句话Docker 轻量级应用运行环境你可以理解成应用打包器 运行器二、为什么需要 Docker以前开发经常出现我电脑能运行 你电脑运行不了因为每个人环境不同软件版本不同配置不同例如MySQL版本不同 Redis版本不同 Go版本不同于是项目经常崩。三、Docker 解决了什么问题Docker 的核心思想把 程序 环境 配置 全部打包这样无论在哪台电脑都能一样运行四、最经典一句话Docker 最经典的一句话Build once, run anywhere意思一次构建到处运行五、Docker 和虚拟机区别很多新人会把 Docker 和虚拟机搞混。虚拟机例如VMware VirtualBox特点模拟整个操作系统非常重。DockerDocker共享宿主机内核只隔离环境。所以非常轻量 启动极快六、Docker 核心概念必须掌握Docker 最核心只有三个东西镜像Image 容器Container 仓库Repository七、什么是镜像Image镜像你可以理解成安装包模板例如MySQL镜像 Redis镜像 Go镜像 Ubuntu镜像类比镜像像游戏安装包它本身不能运行只能拿来创建容器八、什么是容器Container容器是真正运行起来的东西例如运行中的 MySQL 运行中的 Redis类比镜像 类 容器 对象或者镜像 安装包 容器 安装后的程序九、什么是仓库Repository仓库用于存放镜像最著名Docker Hub类似GitHub但GitHub 存代码。Docker Hub存镜像十、Docker 工作流程重点Docker Hub 下载镜像 ↓ 通过镜像创建容器 ↓ 容器运行程序十一、安装 Docker 后第一件事测试docker-v输出Docker version xxx说明安装成功。十二、运行第一个容器例如运行 Redis。下载并运行 Redisdockerrun redisDocker 会第一步发现本地没有 redis 镜像第二步自动去 Docker Hub 下载。第三步创建 Redis 容器。第四步启动 Redis。十三、docker run 到底干了什么这一句dockerrun redis其实包含下载镜像 创建容器 启动容器三个步骤。十四、查看运行中的容器dockerps十五、停止容器dockerstop 容器ID十六、删除容器dockerrm容器ID十七、查看镜像dockerimages十八、为什么后端开发离不开 Docker因为现在项目不只是一个 Go 程序而是Go MySQL Redis Nginx RabbitMQ MinIO一大堆服务。Docker 可以快速部署所有环境十九、最经典开发场景以前安装 MySQL官网下载 手动安装 配置环境变量 改配置文件非常痛苦。现在dockerrun mysql直接启动。二十、端口映射重点例如dockerrun-p6379:6379 redis含义宿主机端口 : 容器端口6379:6379表示你电脑的6379 映射到 Redis容器6379这样Go 程序localhost:6379才能连接到 Redis。二十一、后台运行重点dockerrun-dredis-d表示后台运行否则容器会占着终端。二十二、容器名字dockerrun--namemyredis redis表示给容器取名 myredis否则Docker 会随机名字。二十三、Docker 最常见命令命令作用docker images查看镜像docker ps查看容器docker run创建运行容器docker stop停止容器docker rm删除容器docker pull下载镜像二十四、Go 为什么特别适合 Docker因为Go静态编译 单二进制文件特别容易容器化所以现在Go Docker非常流行。二十五、真实开发部署流程例如Gin 项目 ↓ 打包 Go 程序 ↓ 写 Dockerfile ↓ 构建镜像 ↓ 运行容器 ↓ 部署服务器二十六、什么是 DockerfileDockerfile本质镜像构建脚本例如FROM golang:1.24 WORKDIR /app COPY . . RUN go build -o main . CMD [./main]二十七、Docker 真正核心思想你一定要理解Docker不是虚拟机而是应用隔离运行环境它真正解决的是环境一致性二十八、后端学习 Docker 第一阶段学什么先掌握1. Image 2. Container 3. docker run 4. docker ps 5. 端口映射 6. Dockerfile就够了。别一开始就研究K8s Swarm Compose容易崩。二十九、最后总结Docker 本质轻量级容器技术核心作用打包环境 隔离运行 快速部署核心概念镜像 Image 容器 Container 仓库 Repository核心流程下载镜像 ↓ 创建容器 ↓ 运行程序现在后端开发Gin MySQL Redis Docker已经属于基础技能组合。