【后端】Docker 常用命令详解
整理一份 Docker 常用命令详解,分为几个模块(镜像、容器、数据卷、网络、系统管理、调试排错),并且解释用法和常见场景。
🚀 Docker 命令详解
1. 镜像相关命令(Image)
镜像是容器的模板。
命令 | 说明 | 示例 |
---|---|---|
docker images | 查看本地镜像 | docker images |
docker search <name> | 在 Docker Hub 搜索镜像 | docker search redis |
docker pull <name>:<tag> | 拉取镜像 | docker pull mysql:8.0 |
docker rmi <image_id> | 删除镜像 | docker rmi abc123 |
docker tag <image_id> <repo>:<tag> | 给镜像打标签 | docker tag abc123 myrepo/app:v1 |
docker save -o <file>.tar <image> | 导出镜像到文件 | docker save -o mysql.tar mysql:8.0 |
docker load -i <file>.tar | 从文件加载镜像 | docker load -i mysql.tar |
docker build -t <name>:<tag> . | 基于 Dockerfile 构建镜像 | docker build -t myapp:v1 . |
2. 容器相关命令(Container)
容器是运行中的镜像实例。
命令 | 说明 | 示例 |
---|---|---|
docker ps | 查看正在运行的容器 | docker ps |
docker ps -a | 查看所有容器(包括已停止) | docker ps -a |
docker run -it --name <name> <image> | 运行容器并进入交互模式 | docker run -it --name test ubuntu bash |
docker run -d -p 8080:80 <image> | 后台运行容器并映射端口 | docker run -d -p 8080:80 nginx |
docker exec -it <container_id> bash | 进入正在运行的容器 | docker exec -it mynginx bash |
docker logs -f <container_id> | 查看容器日志(持续输出) | docker logs -f mynginx |
docker stop <container_id> | 停止容器 | docker stop mynginx |
docker start <container_id> | 启动容器 | docker start mynginx |
docker restart <container_id> | 重启容器 | docker restart mynginx |
docker rm <container_id> | 删除容器 | docker rm abc123 |
docker commit <container_id> <image:tag> | 把容器保存为新镜像 | docker commit abc123 myapp:v2 |
docker cp <container_id>:<path> <local_path> | 拷贝容器文件到本地 | docker cp mynginx:/etc/nginx/nginx.conf ./ |
3. 数据卷相关命令(Volume)
数据卷用于持久化存储和共享数据。
命令 | 说明 | 示例 |
---|---|---|
docker volume ls | 查看所有卷 | docker volume ls |
docker volume create <name> | 创建数据卷 | docker volume create mydata |
docker volume inspect <name> | 查看卷信息 | docker volume inspect mydata |
docker volume rm <name> | 删除卷 | docker volume rm mydata |
docker run -v <volume_name>:<container_path> <image> | 使用数据卷挂载 | docker run -v mydata:/var/lib/mysql mysql:8.0 |
docker run -v <host_path>:<container_path> | 挂载主机目录 | docker run -v /home/data:/data ubuntu |
4. 网络相关命令(Network)
容器之间通信需要网络。
命令 | 说明 | 示例 |
---|---|---|
docker network ls | 查看所有网络 | docker network ls |
docker network create <name> | 创建网络 | docker network create mynet |
docker network inspect <name> | 查看网络详情 | docker network inspect mynet |
docker network connect <net> <container> | 把容器加入网络 | docker network connect mynet myapp |
docker network disconnect <net> <container> | 从网络移除容器 | docker network disconnect mynet myapp |
常见网络模式:
bridge(默认):同一网络下容器可互相访问。
host:容器和宿主机共享网络。
none:容器无网络。
5. 系统管理命令
主要用于清理无用资源和查看状态。
命令 | 说明 | 示例 |
---|---|---|
docker info | 查看 Docker 系统信息 | docker info |
docker stats | 查看容器资源使用情况 | docker stats |
docker system df | 查看磁盘使用情况 | docker system df |
docker system prune | 清理无用资源 | docker system prune -af |
docker top <container_id> | 查看容器内进程 | docker top myapp |
docker inspect <id> | 查看容器/镜像详细信息 | docker inspect mynginx |
6. 调试与排错命令
命令 | 说明 | 示例 |
---|---|---|
docker logs <id> | 查看日志 | docker logs myapp |
docker exec -it <id> sh | 进入容器调试 | docker exec -it myapp sh |
docker events | 查看 Docker 实时事件 | docker events |
docker history <image> | 查看镜像构建历史 | docker history ubuntu:20.04 |
✅ 总结:
镜像操作:
docker pull / build / rmi / save / load
容器操作:
docker run / ps / exec / logs / stop / rm
数据卷操作:
docker volume create / ls / rm
网络操作:
docker network create / connect / inspect
系统管理:
docker stats / prune / inspect