随着微服务架构的流行,Docker 已经成为了后端开发和运维必须掌握的技能。最近抽空系统了解了一下 Docker 的基础概念,做个简单的总结。
传统虚拟机 vs 容器
在 Docker 出现之前,我们通常使用虚拟机(VM)来隔离环境。
- 虚拟机: 需要模拟硬件,运行完整的操作系统,启动慢,占用资源多(GB 级别)。
- 容器(Docker): 共享宿主机的内核,只打包应用代码和依赖库,启动是秒级的,且非常轻量(MB 级别)。
Docker 的三个核心概念
镜像 (Image)
类似于“安装包”或者“快照”。它是一个只读的模板,包含了运行程序所需的一切环境。容器 (Container)
镜像运行起来就是容器。如果说镜像是类(Class),容器就是实例(Instance)。容器是可以被启动、停止、删除的。仓库 (Repository)
存放镜像的地方,类似于代码仓库 GitHub。最常用的是 Docker Hub。
常用命令体验
# 拉取一个 nginx 镜像
docker pull nginx:latest
# 运行容器
docker run -d -p 80:80 --name my-nginx nginx
# 查看正在运行的容器
docker ps