docker
1. Docker 是什么?
Docker 是一个容器化平台,用来把应用和依赖打包在一个“容器”里运行。
它的核心思想是:
- 解决“在我电脑能跑,别人电脑跑不动”的问题
- 用容器代替虚拟机,启动更快、资源占用更少
- 一次构建,随处运行(跨平台部署方便)
2. Docker 的基本概念
- 镜像(Image):类似于软件的安装包,包含应用程序和运行环境
- 容器(Container):镜像的运行实例,相当于正在运行的软件
- 仓库(Registry):存放镜像的地方(例如 Docker Hub)
3. 常用 Docker 命令
3.1 镜像操作
# 搜索镜像
docker search ubuntu
# 拉取镜像
docker pull ubuntu:20.04
# 查看本地镜像
docker images
# 删除镜像
docker rmi ubuntu:20.04
3.2 容器操作
# 启动容器(交互模式)
docker run -it ubuntu:20.04 /bin/bash
# 启动容器(后台运行)
docker run -d --name mynginx -p 8080:80 nginx
# 查看运行中的容器
docker ps
# 查看所有容器(包括已停止)
docker ps -a
# 停止容器
docker stop mynginx
# 启动已停止的容器
docker start mynginx
# 删除容器
docker rm mynginx
3.3 进入容器
docker exec -it mynginx /bin/bash
3.4 日志查看
docker logs -f mynginx
4. Dockerfile(构建自定义镜像)
例如写一个 Python Flask 应用的镜像:
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]
构建镜像:
docker build -t myflaskapp .
运行容器:
docker run -d -p 5000:5000 myflaskapp
5. Docker Compose(多容器管理)
示例:使用 docker-compose.yml
同时启动 Web + 数据库:
version: '3'
services:
web:
image: myflaskapp
ports:
- "5000:5000"
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: root
启动:
docker-compose up -d
6. 常见使用场景
- 本地快速搭建开发环境(如 MySQL、Redis、Elasticsearch)
- 部署 Web 应用(打包镜像 → 部署到服务器)
- 结合 CI/CD,自动构建、测试、上线