Docker 容器是一种轻量级、可移植的虚拟化技术,用于打包和运行应用程序及其依赖环境。以下是关于 Docker 容器的详细解释:
容器(Container):
基于 Docker 镜像创建的运行实例,包含应用程序代码、运行时环境、系统工具和依赖库。每个容器是独立的进程,与其他容器共享主机操作系统内核(但资源隔离)。
镜像(Image):
容器的静态模板,包含运行应用所需的文件系统、配置和依赖。镜像是分层的(Layer),通过联合文件系统(如 Overlay2)实现高效存储。
Docker 引擎:
后台服务,负责构建镜像、管理容器(创建/启动/停止等)。
# 拉取镜像(如官方Nginx镜像)
docker pull nginx
# 运行容器(映射端口80,后台运行)
docker run -d -p 80:80 --name my-nginx nginx
# 查看运行中的容器
docker ps
# 进入容器内部
docker exec -it my-nginx /bin/bash
# 停止/删除容器
docker stop my-nginx
docker rm my-nginx
Dockerfile:
文本文件定义镜像构建步骤(如基础镜像、复制文件、安装依赖等)。
FROM alpine
COPY app.py /app/
RUN pip install flask
CMD ["python", "/app/app.py"]
Docker Compose:
通过 YAML 文件定义多容器应用(如 Web + 数据库)。
version: '3'
services:
web:
image: nginx
ports: ["80:80"]
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: 123456
特性 | Docker 容器 | 传统虚拟机 |
---|---|---|
虚拟化层级 | 操作系统级(共享内核) | 硬件级(Hypervisor) |
启动速度 | 秒级 | 分钟级 |
资源占用 | 低(MB 级) | 高(GB 级) |
隔离性 | 进程级 | 完全隔离 |
docker run hello-world
开始。build
、push
、logs
、network
等。如果需要深入某个方向(如网络配置、存储卷、安全加固),可以进一步探讨!