提示:以下所有<>都不要带
一.容器管理操作
| 功能 | 指令 | 常用参数 |
| 创建容器 | docker create <镜像> | --name 指定名称-it 交互式终端 |
| 启动容器 | docker start <容器ID/名> | -a 附加输出-i 交互式 |
| 运行容器 | docker run <镜像> | -d 后台运行-p 端口映射--rm 退出后自动删除 |
| 停止容器 | docker stop <容器ID/名> | -t 超时时间(默认10秒) |
| 强制停止 | docker kill <容器ID/名> | -s 发送特定信号(如SIGKILL) |
| 重启容器 | docker restart <容器ID/名> | |
| 暂停/恢复 | docker pause/unpause <容器ID/名> |
二.容器信息
| 功能 | 指令 | 常用参数 |
| 查看运行中容器 | docker ps | -q 只显示ID--format 自定义格式 |
| 查看所有容器 | docker ps -a | |
| 查看容器详情 | docker inspect <容器ID/名> | -f 过滤字段(如{{.NetworkSettings.IPAddress}}) |
| 查看日志 | docker logs <容器ID/名> | -f 实时跟踪--tail N 显示最后N行 |
| 资源监控 | docker stats | --no-stream 单次输出 |
三.容器与终端交互
| 功能 | 指令 | 说明 |
| 进入容器终端 | docker exec -it <容器ID/名> <命令> | 常用命令:/bin/bash、/bin/sh |
| 复制文件到容器 | docker cp <本地路径> <容器ID/名>:<容器路径> | |
| 从容器复制文件 | docker cp <容器ID/名>:<容器路径> <本地路径> | |
| 重命名容器 | docker rename <旧名> <新名> |
四.容器镜像管理
| 功能 | 指令 |
| 拉取镜像 | docker pull <image> |
| 列出镜像 | docker images |
| 删除镜像 | docker rmi <image> |
| 构建镜像 | docker build -t <标签> . |
五.容器网络
| 功能 | 指令 | 常用参数 |
| 创建网络 | docker network create <网络名> | --driver 驱动类型(如bridge) |
| 连接容器到网络 | docker network connect <网络名> <容器ID/名> | --ip 指定IP地址 |
| 断开网络 | docker network disconnect <网络名> <容器ID/名> | |
| 查看端口映射 | docker port <容器ID/名> |
六.容器数据管理
| 功能 | 指令 | 说明 |
| 创建卷 | docker volume create <卷名> | |
| 挂载卷到容器 | docker run -v <卷名>:<容器路径> <镜像> | 或 --mount 语法 |
| 绑定目录挂载 | docker run -v <主机路径>:<容器路径> <镜像> | |
| 匿名卷声明 | docker run -v <容器路径> <镜像> | 自动创建匿名卷 |
七.容器资源限制
| 功能 | 参数示例 | 说明 |
| CPU限制 | --cpus=1.5 | 最多使用1.5核 |
| 内存限制 | --memory=512m | 硬限制内存 |
| 内存+Swap | --memory-swap=1g | 总内存+Swap限制 |
| IO权重 | --blkio-weight=500 | 相对权重(10-1000) |
八.容器维护
| 功能 | 指令 | 说明 |
| 导出容器为镜像 | docker commit <容器ID/名> <新镜像名> | 保存当前状态 |
| 导出文件系统 | docker export <容器ID/名> > file.tar | 不包含元数据 |
| 更新配置 | docker update --memory=1g <容器ID/名> | 动态调整资源 |
九.容器清理操作
| 功能 | 指令 | 说明 |
| 删除容器 | docker rm <容器ID/名> | -f 强制删除运行中的容器 |
| 删除所有停止的容器 | docker container prune | -f 跳过确认 |
| 清理无用资源 | docker system prune | 含镜像、网络、缓存 |
十.一些常用操作
1.运行临时测试容器:
docker run --rm -it alpine sh
--rm:容器退出后自动删除(适合临时测试,不留垃圾)-it:以交互模式运行(-i 保持输入,-t 分配伪终端)alpine:使用轻量级 Alpine Linux 镜像sh:启动容器后执行的命令(这里是 Alpine 的默认 Shell)
2.后台运行MySQL并持久化数据:
docker run -d --name mysql \
-v mysql_data:/var/lib/mysql \# 将名为 mysql_data 的卷挂载到容器内的 MySQL 数据目录
-e MYSQL_ROOT_PASSWORD=123456 \# 设置 MySQL root 密码(生产环境建议用更复杂的密码)
-p 3306:3306 \# 将主机的 3306 端口映射到容器的 3306 端口
mysql:latest# 使用官方 MySQL 最新镜像
3.调试网络问题:
docker run --network host --rm nicolaka/netshoot
--network host:容器直接使用主机网络(可调试主机网络问题)nicolaka/netshoot:专用于网络调试的工具镜像(包含 ping、curl、tcpdump 等)- 典型用途:测试容器内是否能访问外部服务、检查端口冲突等
4.批量删除所有容器:
docker rm -f $(docker ps -aq)
docker ps -aq:列出所有容器(包括停止的)的 ID(-q 只返回 ID)docker rm -f:强制删除容器(-f 可删除运行中的容器)- 注意:此操作不可逆!建议先执行 docker stop $(docker ps -aq) 安全停止容器
