一、镜像操作
# 查看本地镜像
docker images
docker image ls
# 拉取镜像
docker pull nginx:latest
docker pull python:3.12
# 删除镜像
docker rmi <镜像ID或名称>
docker image rm <镜像ID>
# 构建镜像
docker build -t <镜像名>:<标签> <路径>
docker build -t myapp:v1 .
# 查看镜像详情
docker inspect <镜像ID>
# 导出/导入镜像
docker save -o myapp.tar myapp:v1
docker load -i myapp.tar
二、容器操作
# 查看运行中的容器
docker ps
# 查看所有容器(包括已停止的)
docker ps -a
# 启动容器
docker run -d --name mycontainer -p 8080:80 nginx:latest
# 常用 run 参数
# -d: 后台运行
# --name: 指定容器名称
# -p: 端口映射 宿主机端口:容器端口
# -v: 挂载卷 宿主机路径:容器路径
# -e: 设置环境变量
# --restart: 重启策略 (no|always|on-failure|unless-stopped)
# --network: 指定网络
# 停止容器
docker stop <容器ID或名称>
# 启动已停止的容器
docker start <容器ID或名称>
# 重启容器
docker restart <容器ID或名称>
# 删除容器
docker rm <容器ID或名称>
docker rm -f <容器ID或名称> # 强制删除运行中的容器
# 查看容器日志
docker logs <容器ID或名称>
docker logs -f <容器ID或名称> # 实时跟踪日志
docker logs --tail 100 <容器> # 查看最后100行
docker logs --since 10m <容器> # 查看最近10分钟的日志
# 进入容器
docker exec -it <容器ID或名称> bash
docker exec -it <容器ID或名称> sh
# 在容器中执行命令
docker exec <容器ID或名称> ls /app
# 查看容器详情
docker inspect <容器ID或名称>
# 查看容器资源使用
docker stats
docker stats <容器ID或名称>
# 复制文件到容器
docker cp <本地文件> <容器ID>:<容器内路径>
docker cp <容器ID>:<容器内路径> <本地路径>
三、Docker Compose
# 启动服务
docker compose up -d
# 停止服务
docker compose down
# 重启服务
docker compose restart
# 查看服务状态
docker compose ps
# 查看服务日志
docker compose logs
docker compose logs -f
docker compose logs -f <服务名>
# 构建并启动
docker compose up -d --build
# 重新构建镜像
docker compose build
# 执行命令
docker compose exec <服务名> bash
# 查看资源使用
docker compose top
四、网络操作
# 查看网络
docker network ls
# 创建网络
docker network create mynetwork
# 删除网络
docker network rm mynetwork
# 查看网络详情
docker network inspect mynetwork
# 连接容器到网络
docker network connect mynetwork mycontainer
# 断开容器网络连接
docker network disconnect mynetwork mycontainer
五、卷操作
# 查看卷
docker volume ls
# 创建卷
docker volume create myvolume
# 删除卷
docker volume rm myvolume
# 查看卷详情
docker volume inspect myvolume
# 删除未使用的卷
docker volume prune
六、清理操作
# 删除所有停止的容器
docker container prune
# 删除所有未使用的镜像
docker image prune -a
# 删除所有未使用的网络
docker network prune
# 删除所有未使用的卷
docker volume prune
# 一键清理所有未使用的资源
docker system prune -a --volumes
七、信息查看
# 查看 Docker 版本
docker --version
docker version
# 查看系统信息
docker info
# 查看磁盘使用
docker system df
八、常用组合命令
# 停止所有运行中的容器
docker stop $(docker ps -q)
# 删除所有停止的容器
docker rm $(docker ps -a -q)
# 删除所有镜像
docker rmi $(docker images -q)
# 查看所有容器的IP地址
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
# 查看容器内进程
docker top <容器ID或名称>
九、故障排查
# 查看容器事件
docker events
# 查看容器端口映射
docker port <容器ID或名称>
# 查看容器文件系统变更
docker diff <容器ID或名称>
# 导出容器为镜像
docker commit <容器ID或名称> 新镜像名:标签