一、Docker 基础命令

1
2
3
4
5
6
7
8
9
10
11
# 查看 Docker 版本
docker --version

# 查看 Docker 客户端和服务端版本
docker version

# 查看 Docker 运行状态和环境信息
docker info

# 查看 Docker 磁盘占用
docker system df

二、镜像命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 查看本地镜像
docker images

# 拉取镜像
docker pull nginx:1.27

# 构建镜像
docker build -t my-app:dev .

# 不使用缓存重新构建镜像
docker build --no-cache -t my-app:dev .

# 为镜像添加标签
docker tag my-app:dev registry.example.com/my-app:dev

# 推送镜像
docker push registry.example.com/my-app:dev

# 删除镜像
docker rmi my-app:dev

# 查看镜像详细信息
docker inspect my-app:dev

三、容器运行命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 后台运行容器
docker run -d --name my-app my-app:dev

# 映射端口
docker run -d --name web -p 8080:80 nginx:1.27

# 设置环境变量
docker run -d --name my-app -e APP_ENV=development my-app:dev

# 从文件读取环境变量
docker run -d --name my-app --env-file .env my-app:dev

# 挂载宿主机目录
docker run -d --name my-app -v "${PWD}:/app" my-app:dev

# 挂载命名数据卷
docker run -d --name mysql -v mysql-data:/var/lib/mysql mysql:8.4

# 交互式运行临时容器,退出后自动删除
docker run --rm -it alpine:3.21 sh

四、容器管理命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 查看正在运行的容器
docker ps

# 查看全部容器
docker ps -a

# 启动容器
docker start my-app

# 停止容器
docker stop my-app

# 重启容器
docker restart my-app

# 删除已停止的容器
docker rm my-app

# 强制删除运行中的容器
docker rm -f my-app

# 查看容器详细信息
docker inspect my-app

# 查看容器资源占用
docker stats

五、日志与排障命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 查看容器日志
docker logs my-app

# 持续查看容器日志
docker logs -f my-app

# 查看最后 100 行日志并持续输出
docker logs -f --tail 100 my-app

# 进入容器
docker exec -it my-app sh

# 使用 Bash 进入容器
docker exec -it my-app bash

# 在容器中执行单条命令
docker exec my-app env

# 从容器复制文件到宿主机
docker cp my-app:/app/logs/app.log ./app.log

# 从宿主机复制文件到容器
docker cp ./config.yaml my-app:/app/config.yaml

六、Docker Compose 命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 检查 Compose 配置
docker compose config

# 后台启动全部服务
docker compose up -d

# 重新构建镜像并启动服务
docker compose up -d --build

# 查看服务状态
docker compose ps

# 查看全部服务日志
docker compose logs

# 持续查看指定服务日志
docker compose logs -f --tail=100 api

# 进入指定服务容器
docker compose exec api sh

# 在指定服务中执行命令
docker compose exec api npm test

# 使用一次性容器执行命令
docker compose run --rm api npm run migrate

# 重启指定服务
docker compose restart api

# 停止并删除服务容器和默认网络
docker compose down

# 停止服务并删除数据卷
docker compose down -v

七、数据卷命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看数据卷
docker volume ls

# 创建数据卷
docker volume create mysql-data

# 查看数据卷详细信息
docker volume inspect mysql-data

# 删除数据卷
docker volume rm mysql-data

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

八、网络命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看 Docker 网络
docker network ls

# 创建网络
docker network create app-network

# 查看网络详细信息
docker network inspect app-network

# 将容器连接到网络
docker network connect app-network my-app

# 删除网络
docker network rm app-network

九、清理命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 删除已停止的容器
docker container prune

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

# 删除构建缓存
docker builder prune

# 删除未使用的容器、网络、镜像和构建缓存
docker system prune

# 删除未使用资源和匿名数据卷
docker system prune -a --volumes

docker compose down -vdocker volume prunedocker system prune -a --volumes 可能删除项目数据,执行前需要确认。