← 返回博客
·开发工具

Docker 常用命令速查表:容器化开发必备

Docker 是现代开发的基石工具。本文整理了最实用的 Docker 命令,从镜像管理到容器操作,帮你快速查阅、提升容器化开发效率。

#Docker#容器#开发者工具#速查表

为什么需要 Docker 速查表

Docker 已成为现代开发的标配工具。容器化让开发、测试、部署变得一致且可重复。但 Docker 命令参数繁多,本文整理的速查表能帮你快速查阅常用操作。

镜像操作

拉取与查看

# 拉取官方镜像

docker pull node:20

docker pull nginx:latest

docker pull postgres:15-alpine

# 查看本地镜像

docker images

docker images -a # 显示所有镜像(包括中间层)

# 查看镜像详情

docker inspect node:20

构建与删除

# 用 Dockerfile 构建镜像

docker build -t myapp:1.0 .

# 构建时指定 Dockerfile 路径

docker build -f docker/Dockerfile.prod -t myapp:prod .

# 删除镜像

docker rmi node:18

docker rmi $(docker images -q) # 删除所有镜像(慎用)

# 清理 dangling 镜像(无 tag 的镜像)

docker image prune

docker image prune -a # 删除所有未使用的镜像

容器操作

运行容器

# 运行容器(前台)

docker run node:20 node -e "console.log('hello')"

# 后台运行(-d)

docker run -d -p 3000:3000 --name my-app myapp:1.0

# 端口映射(-p 主机端口:容器端口)

docker run -d -p 8080:80 nginx

# 挂载卷(-v)

docker run -d -v $(pwd)/data:/data redis

# 环境变量(-e)

docker run -d -e NODE_ENV=production myapp:1.0

查看与管理

# 查看运行中的容器

docker ps

docker ps -a # 查看所有容器(包括已停止的)

# 查看容器日志

docker logs my-app

docker logs -f my-app # 实时追踪日志(类似 tail -f)

# 进入容器(调试用)

docker exec -it my-app /bin/bash

docker exec -it my-app sh # Alpine 镜像用 sh

# 停止 / 启动 / 重启

docker stop my-app

docker start my-app

docker restart my-app

# 删除容器

docker rm my-app

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

卷(Volume)管理

# 创建卷

docker volume create my-data

# 查看卷

docker volume ls

# 查看卷详情

docker volume inspect my-data

# 删除卷

docker volume rm my-data

docker volume prune # 删除未使用的卷

网络管理

# 查看网络

docker network ls

# 创建自定义网络

docker network create my-net

# 将容器连接到网络

docker network connect my-net my-app

# 断开连接

docker network disconnect my-net my-app

Docker Compose

常用命令

# 启动所有服务(后台)

docker compose up -d

# 停止并移除容器、网络

docker compose down

# 查看服务状态

docker compose ps

# 查看服务日志

docker compose logs

docker compose logs -f web # 查看指定服务日志

# 重新构建并启动

docker compose up -d --build

docker-compose.yml 示例

version: "3.9"

services:

web:

build: .

ports:

- "3000:3000"

volumes:

- ./src:/app/src

environment:

- NODE_ENV=development

depends_on:

- db

db:

image: postgres:15-alpine

environment:

POSTGRES_PASSWORD: example

volumes:

- pgdata:/var/lib/postgresql/data

redis:

image: redis:7-alpine

ports:

- "6379:6379"

volumes:

pgdata:

实用技巧

清理 Docker 占用空间

# 查看 Docker 磁盘占用

docker system df

# 清理所有未使用资源(镜像、容器、卷、网络)

docker system prune

docker system prune -a # 包括未使用的镜像

在容器内执行命令

# 单次执行

docker exec my-app node -v

# 交互式 shell

docker exec -it my-app sh

复制文件

# 从容器复制到主机

docker cp my-app:/app/config.json ./config.json

# 从主机复制到容器

docker cp ./data.txt my-app:/app/data.txt


总结

掌握这些 Docker 命令,日常开发中的容器化需求基本都能覆盖。建议把本文加入书签,随时查阅!

> **Pro Tip**: 使用 docker stats 可以实时查看所有容器的资源占用情况(CPU、内存、网络)。