Docker 入门笔记(后端开发必学)
现在后端开发:
几乎都会接触:
Docker
尤其:
Go + Gin + MySQL + Redis
项目里。
很多新人第一次学 Docker:
会感觉:
镜像?
容器?
虚拟化?
非常抽象。
其实:
Docker 的核心思想:
并不复杂。
一、Docker 到底是什么
一句话:
Docker = 轻量级应用运行环境
你可以理解成:
应用打包器 + 运行器
二、为什么需要 Docker
以前开发:
经常出现:
我电脑能运行
你电脑运行不了
因为:
每个人:
- 环境不同
- 软件版本不同
- 配置不同
例如:
MySQL版本不同
Redis版本不同
Go版本不同
于是:
项目经常崩。
三、Docker 解决了什么问题
Docker 的核心思想:
把:
程序 + 环境 + 配置
全部打包
这样:
无论在哪台电脑:
都能一样运行
四、最经典一句话
Docker 最经典的一句话:
Build once, run anywhere
意思:
一次构建,到处运行
五、Docker 和虚拟机区别
很多新人:
会把 Docker 和虚拟机搞混。
虚拟机
例如:
VMware
VirtualBox
特点:
模拟整个操作系统
非常重。
Docker
Docker:
共享宿主机内核
只隔离环境。
所以:
非常轻量
启动极快
六、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。
下载并运行 Redis
docker run redis
Docker 会:
第一步
发现:
本地没有 redis 镜像
第二步
自动去 Docker Hub 下载。
第三步
创建 Redis 容器。
第四步
启动 Redis。
十三、docker run 到底干了什么
这一句:
docker run redis
其实:
包含:
下载镜像
创建容器
启动容器
三个步骤。
十四、查看运行中的容器
docker ps
十五、停止容器
docker stop 容器ID
十六、删除容器
docker rm 容器ID
十七、查看镜像
docker images
十八、为什么后端开发离不开 Docker
因为:
现在项目:
不只是:
一个 Go 程序
而是:
Go
MySQL
Redis
Nginx
RabbitMQ
MinIO
一大堆服务。
Docker 可以:
快速部署所有环境
十九、最经典开发场景
以前:
安装 MySQL:
官网下载
手动安装
配置环境变量
改配置文件
非常痛苦。
现在:
docker run mysql
直接启动。
二十、端口映射(重点)
例如:
docker run -p 6379:6379 redis
含义:
宿主机端口 : 容器端口
6379:6379
表示:
你电脑的6379
映射到
Redis容器6379
这样:
Go 程序:
localhost:6379
才能连接到 Redis。
二十一、后台运行(重点)
docker run -d redis
-d
表示:
后台运行
否则:
容器会占着终端。
二十二、容器名字
docker run --name myredis redis
表示:
给容器取名:
myredis
否则:
Docker 会随机名字。
二十三、Docker 最常见命令
| 命令 | 作用 |
|---|---|
| docker images | 查看镜像 |
| docker ps | 查看容器 |
| docker run | 创建运行容器 |
| docker stop | 停止容器 |
| docker rm | 删除容器 |
| docker pull | 下载镜像 |
二十四、Go 为什么特别适合 Docker
因为:
Go:
静态编译
单二进制文件
特别容易:
容器化
所以:
现在:
Go + Docker
非常流行。
二十五、真实开发部署流程
例如:
Gin 项目
↓
打包 Go 程序
↓
写 Dockerfile
↓
构建镜像
↓
运行容器
↓
部署服务器
二十六、什么是 Dockerfile
Dockerfile:
本质:
镜像构建脚本
例如:
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
已经属于基础技能组合。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)