docker日常命令

Docker 日常命令速查表

镜像管理

搜索镜像

docker search 镜像名          # 搜索镜像
docker search --limit 5 nginx # 限制搜索结果数量

拉取镜像

docker pull 镜像名:标签       # 拉取指定版本镜像
docker pull nginx:latest     # 拉取最新版本
docker pull nginx:1.21       # 拉取指定版本

查看镜像

docker images                # 查看所有镜像
docker image ls             # 查看所有镜像(新版本命令)
docker images -a            # 查看所有镜像(包括中间层)
docker images --filter "dangling=true"  # 查看悬空镜像

删除镜像

docker rmi 镜像ID           # 删除指定镜像
docker rmi 镜像名:标签       # 删除指定版本镜像
docker rmi -f 镜像ID        # 强制删除镜像
docker image prune          # 删除悬空镜像
docker image prune -a       # 删除所有未使用的镜像

构建镜像

docker build -t 镜像名:标签 . # 构建镜像(当前目录)
docker build -t myapp:v1.0 -f Dockerfile.dev .  # 指定Dockerfile

容器管理

运行容器

# 基本运行
docker run 镜像名:标签       # 运行容器
docker run -d 镜像名:标签    # 后台运行容器
docker run -it 镜像名:标签   # 交互式运行容器

# 端口映射
docker run -p 8080:80 nginx # 本地8080端口映射到容器80端口
docker run -P nginx         # 随机端口映射

# 目录挂载
docker run -v /宿主机路径:/容器路径 镜像名
docker run -v $(pwd):/app -w /app myapp  # 挂载当前目录并设为工作目录

# 环境变量
docker run -e 环境变量名=值 镜像名
docker run -e NODE_ENV=production node-app

# 容器命名
docker run --name 容器名 镜像名
docker run --name my-nginx nginx

# 自动重启
docker run --restart=always nginx
docker run --restart=on-failure:3 nginx  # 最多重启3次

查看容器

docker ps                   # 查看正在运行的容器
docker ps -a               # 查看所有容器(包括停止的)
docker ps -q               # 只显示容器ID
docker ps --format "table {{.Names}}\t{{.Status}}"  # 格式化输出

停止容器

docker stop 容器ID          # 停止容器
docker stop 容器名          # 通过容器名停止
docker kill 容器ID          # 强制停止容器
docker stop $(docker ps -q) # 停止所有运行的容器

启动容器

docker start 容器ID         # 启动已停止的容器
docker restart 容器ID       # 重启容器
docker pause 容器ID         # 暂停容器
docker unpause 容器ID       # 恢复暂停的容器

删除容器

docker rm 容器ID            # 删除已停止的容器
docker rm -f 容器ID         # 强制删除运行中的容器
docker container prune      # 删除所有已停止的容器
docker rm $(docker ps -aq)  # 删除所有容器

容器操作

进入容器

docker exec -it 容器ID /bin/bash    # 进入容器bash
docker exec -it 容器ID sh          # 进入容器sh
docker exec 容器ID 命令             # 在容器中执行命令
docker exec -it mynginx /bin/bash  # 通过容器名进入

查看日志

docker logs 容器ID            # 查看容器日志
docker logs -f 容器ID         # 实时跟踪日志
docker logs --tail 100 容器ID # 查看最后100行日志
docker logs -t 容器ID         # 显示时间戳
docker logs 容器ID 2>&1 | grep "error"  # 搜索日志中的错误

查看统计信息

docker stats                  # 查看所有容器资源使用情况
docker stats 容器ID          # 查看指定容器资源使用
docker stats --no-stream     # 不持续更新
docker top 容器ID           # 查看容器中运行的进程

文件操作

# 复制文件到容器
docker cp 宿主机文件 容器ID:容器内路径
docker cp ./app.js mycontainer:/app/

# 从容器复制文件
docker cp 容器ID:容器内文件 宿主机路径
docker cp mycontainer:/app/app.js ./

# 查看文件变化
docker diff 容器ID           # 查看容器文件系统变化

网络管理

查看网络

docker network ls            # 查看所有网络
docker network inspect 网络名 # 查看网络详细信息

创建网络

docker network create 网络名           # 创建网络
docker network create --driver bridge mynet  # 创建桥接网络
docker network create --subnet=192.168.1.0/24 mynet  # 指定子网

连接容器到网络

docker network connect 网络名 容器名     # 连接容器到网络
docker network disconnect 网络名 容器名   # 断开容器与网络连接

删除网络

docker network rm 网络名              # 删除网络
docker network prune                   # 删除未使用的网络

数据卷管理

查看数据卷

docker volume ls            # 查看所有数据卷
docker volume inspect 卷名   # 查看数据卷详细信息

创建数据卷

docker volume create 卷名    # 创建数据卷
docker volume create --name mydata  # 创建命名数据卷

删除数据卷

docker volume rm 卷名       # 删除数据卷
docker volume prune         # 删除未使用的数据卷

使用数据卷

docker run -v 卷名:容器内路径 镜像名
docker run -v mydata:/data nginx

系统管理

系统信息

docker version              # 查看Docker版本信息
docker info                 # 查看Docker系统信息
docker system df            # 查看磁盘使用情况
docker system events        # 查看系统事件

清理系统

docker system prune         # 清理未使用的容器、网络、镜像
docker system prune -a      # 清理所有未使用的资源
docker system prune --volumes  # 清理包括数据卷在内的所有资源

常用组合命令

一键清理

# 清理停止的容器、悬空镜像、未使用的网络和数据卷
docker system prune -a --volumes

# 清理所有未使用的镜像
docker image prune -a

批量操作

# 停止所有容器
docker stop $(docker ps -q)

# 删除所有已停止的容器
docker rm $(docker ps -aq --filter status=exited)

# 删除所有悬空镜像
docker rmi $(docker images -f "dangling=true" -q)

实用脚本

# 查看容器资源使用情况
docker stats --no-stream --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"

# 查看容器健康状态
docker ps --format "table {{.Names}}\t{{.Status}}"

# 导出镜像
docker save -o myapp.tar myapp:latest

# 导入镜像
docker load -i myapp.tar

Docker Compose 常用命令

服务管理

docker-compose up -d                # 后台启动所有服务
docker-compose down                 # 停止并删除所有服务
docker-compose down -v              # 停止并删除服务及数据卷
docker-compose restart              # 重启所有服务
docker-compose restart service_name # 重启指定服务

查看状态

docker-compose ps                   # 查看服务状态
docker-compose logs                 # 查看所有服务日志
docker-compose logs -f service_name # 实时查看指定服务日志

构建和更新

docker-compose build                # 构建服务镜像
docker-compose up --build           # 构建并启动服务
docker-compose pull                 # 拉取最新镜像

故障排除

容器启动失败

# 查看容器详细错误信息
docker inspect 容器ID | grep -A 10 "Error"

# 查看容器启动日志
docker logs 容器ID

端口冲突

# 查看端口占用情况
netstat -tulpn | grep 端口号
lsof -i :端口号

磁盘空间不足

# 清理Docker系统
docker system prune -a

# 查看各部分占用情况
docker system df

性能优化

镜像优化

# 使用多阶段构建
# 在Dockerfile中使用 .dockerignore
# 合并RUN命令
# 使用alpine基础镜像

容器优化

# 限制容器资源使用
docker run --memory="512m" --cpus="1.0" nginx

# 使用健康检查
docker run --health-cmd="curl -f http://localhost/" nginx
posted @ 2025-12-04 21:19  lskyl  阅读(0)  评论(0)    收藏  举报