Docker 快速入门指南.md
$ cat docker 快速入门指南.md

Docker 快速入门指南

先了解 Docker

Docker 是一个开源的容器化平台,它允许你将应用程序及其依赖(如库、配置、环境变量)打包成一个轻量级、可移植的“容器”,并在任何支持 Docker 的环境中运行。

传统部署中,我们常遇到:“在我机器上能跑!”的问题。
而 Docker 通过隔离环境,彻底解决了“开发环境 vs 生产环境不一致”的痛点。

核心概念

  • 镜像(Image):一个只读模板,包含运行应用所需的一切(如 nginx:latest)。
  • 容器(Container):镜像的运行实例,可以启动、停止、删除(如一个正在运行的 Nginx 服务)。
  • Dockerfile:一个文本文件,定义如何构建镜像(类似“配方”)。
  • Docker Compose:用于定义和运行多容器应用(如 Web + DB + Cache)。
  • Registry:镜像仓库,如 Docker Hub,可上传/下载镜像。

为什么使用 Docker?

  • 环境一致性:一次构建,到处运行
  • 快速部署:秒级启动容器
  • 资源高效:比虚拟机更轻量,共享宿主机内核
  • 微服务友好:每个服务一个容器,独立部署
  • CI/CD 集成:与 Jenkins、GitHub Actions 等无缝协作

Docker 已成为现代云原生开发的基础设施标准

常用 Docker 命令合集(实战速查)

# 1. 镜像操作
docker images                    # 查看本地所有镜像
docker pull nginx:latest         # 从 Docker Hub 拉取镜像
docker build -t myapp:1.0 .      # 使用当前目录 Dockerfile 构建镜像
docker rmi myapp:1.0             # 删除指定镜像
docker rmi $(docker images -q)   # 删除所有本地镜像(慎用!)

# 2. 容器操作
docker run -d --name web -p 8080:80 nginx:latest    # 启动容器(后台模式,端口映射)
docker run -it ubuntu:20.04 /bin/bash               # 启动并进入容器(交互模式)
docker stop web                    # 停止容器
docker start web                   # 启动已停止的容器
docker restart web                 # 重启容器
docker rm web                      # 删除容器
docker rm $(docker ps -aq)         # 删除所有容器(慎用!)

# 3. 查看状态
docker ps                          # 查看正在运行的容器
docker ps -a                       # 查看所有容器(包括已停止)
docker logs web                    # 查看容器日志
docker logs -f web                 # 实时跟踪日志(类似 tail -f)
docker exec -it web /bin/bash      # 进入正在运行的容器
docker inspect web                 # 查看容器详细信息(IP、挂载等)

# 4. 数据卷(持久化数据)
docker volume create app-data      # 创建命名卷
docker run -d -v app-data:/app/data myapp:1.0   # 挂载卷到容器
docker volume ls                   # 列出所有卷
docker volume rm app-data          # 删除卷

# 5. 网络
docker network create app-net      # 创建自定义网络
docker run -d --network app-net --name db mongo  # 容器加入网络
docker network ls                  # 查看网络
docker network inspect app-net     # 查看网络详情

# 6. Docker Compose(多容器应用)
# 创建 docker-compose.yml 后使用:
docker-compose up -d               # 启动所有服务(后台)
docker-compose down                # 停止并删除所有服务
docker-compose logs -f             # 查看所有服务日志
docker-compose build               # 重新构建服务镜像

# 7. 清理资源(释放磁盘空间)
docker system prune                # 清理未使用的容器、网络、镜像、构建缓存
docker system prune -a             # 清理所有未使用的资源(更彻底)
docker volume prune                # 删除未使用的卷