🔍 系统信息
bash
docker --version # 版本
docker version # 客户端+服务端详细版本
docker info # docker系统整体信息
docker <cmd> --help # 命令帮助
📦 镜像 Image
bash
docker search nginx # 搜索镜像
docker pull nginx # 拉取 latest
docker pull nginx:1.27 # 指定tag
docker images # 列出本地镜像
docker image ls
docker build -t myapp:v1 . # 构建镜像,Dockerfile在当前目录
docker build -t myapp:v1 -f ./Dockerfile.dev . # 指定Dockerfile文件
docker rmi <image-id|name:tag> # 删除镜像
docker rmi -f <image-id> # 强制删除
docker save -o nginx.tar nginx:1.27 # 导出镜像到tar
docker load -i nginx.tar # 从tar导入镜像
docker history nginx:1.27 # 查看镜像分层
🚀 容器 Container
run 参数说明
bash
-d # 后台运行
--name NAME # 指定容器名称
-p HOST:CONTAINER # 端口映射
-v HOST_PATH:CONTAINER_PATH # 挂载目录
-e KEY=VALUE # 设置环境变量
--restart=always # 开机自启
--rm # 停止自动删除容器(测试用)
-it # 交互式终端
示例:后台启动nginx
bash
docker run -d --name nginx-demo -p 8080:80 --restart=always nginx
# 交互式临时容器
docker run -it --rm ubuntu /bin/bash
docker ps # 运行中容器
docker ps -a # 全部容器(含已停止)
docker start <name/id>
docker stop <name/id>
docker restart <name/id>
docker kill <name/id> # 强制杀死
docker rm <name/id> # 删除已停止容器
docker rm -f <name/id> # 强制删除运行中容器
# 进入容器
docker exec -it nginx-demo /bin/bash
docker exec -it nginx-demo sh # 无bash时用sh
# 文件拷贝 宿主机 ↔ 容器
docker cp /host/file 容器ID:/container/path
docker cp 容器ID:/container/file /host/path
# 查看容器完整元信息 json
docker inspect <id>
# 获取容器IP
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <id>
# 查看端口映射
docker port <id>
📋 日志与资源监控
bash
docker logs <container> # 查看日志
docker logs -f --tail 200 <container> # 实时跟踪,末尾200行
docker stats # 所有容器cpu/mem/io实时统计
docker stats <container-id> # 指定容器
💾 数据卷 Volume
bash
docker volume create my-volume
docker volume ls
docker volume inspect my-volume
docker volume rm my-volume
docker volume prune # 删除未被使用的卷
# 两种挂载
# -v 命名卷:docker托管数据卷
# -v /opt/data:/app 绑定挂载:直接映射宿主机目录
🌐 网络 Network
bash
docker network ls
docker network create my-bridge
docker network inspect my-bridge
docker network connect my-bridge <container>
docker network disconnect my-bridge <container>
docker network prune # 清理未使用网络
🧹 系统清理(高频)
bash
docker system prune # 删除停止容器、无用镜像、无用网络,不删volume
docker system prune -a # 清理所有未使用镜像
docker system prune -a --volumes # ⚠️危险:清理未使用镜像+容器+网络+卷
🧩 Docker‑Compose
bash
docker-compose up # 前台启动
docker-compose up -d # 后台启动
docker-compose up -d --build # 重新build镜像并启动
docker-compose stop # 停止,保留容器
docker-compose restart # 重启
docker-compose down # 停止并删除容器网络
docker-compose down -v # down同时删除数据卷
docker-compose logs -f # 实时查看日志
docker-compose ps # 查看compose服务状态
开发常用 compose 模板示例 docker-compose.yml
yaml
version: "3.8"
services:
nginx:
image: nginx:1.27
container_name: demo-nginx
restart: always
ports:
- "8080:80"
volumes:
- ./nginx/conf:/etc/nginx/conf.d
- ./nginx/html:/usr/share/nginx/html
environment:
- TZ=Asia/Shanghai
redis:
image: redis:7-alpine
container_name: demo-redis
restart: always
ports:
- "6379:6379"
volumes:
- redis-data:/data
command: redis-server --appendonly yes
volumes:
redis-data:
使用模板
bash
# 在yml所在目录执行
docker-compose up -d