简介
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
应用场景
- 微服务架构: 每个服务独立容器化,便于管理和扩展。
- CI/CD流水线: 与 Jenkins/GitLab CI 集成,实现自动化构建和测试。
- 开发环境标准化: 新成员一键启动全套依赖服务(如数据库、消息队列)。
- 云原生基础: Kubernetes 等编排工具基于 Docker 管理容器集群。
核心优势
- 跨平台一致性: 解决"在我机器上能跑"的问题,确保开发、测试、生产环境一致。
- 资源高效: 容器直接共享主机内核,无需虚拟化整个操作系统,节省内存和 CPU。
- 快速部署: 秒级启动容器,支持自动化扩缩容。
- 隔离性: 每个容器拥有独立的文件系统、网络和进程空间。
核心概念
- 容器(Container): 轻量化的运行实例,包含应用代码、运行时环境和依赖库。基于镜像创建,与其他容器隔离,共享主机操作系统内核(比虚拟机更高效)。
- 镜像(Image): 只读模板,定义了容器的运行环境(如操作系统、软件配置等)。通过分层存储(Layer)优化空间和构建速度。
- Dockerfile: 文本文件,描述如何自动构建镜像(例如指定基础镜像、安装软件、复制文件等)。
- 仓库(Registry): 存储和分发镜像的平台,如 Docker Hub(官方公共仓库)或私有仓库(如 Harbor)。
基本命令
# 拉取镜像(如官方Nginx镜像)
docker pull nginx
# 运行容器(-d 后台运行,-p 映射端口)
docker run -d -p 80:80 nginx
# 查看运行中的容器
docker ps
# 构建镜像(基于当前目录的Dockerfile)
docker build -t my-app .
# 进入容器内部
docker exec -it <容器ID> /bin/bash
评论 (0)