Docker 入门教程(三):容器管理

Docker 容器简介

容器是镜像的运行实例,可以启动、停止、删除。容器是轻量级的,可以快速创建和销毁。

创建容器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 基本运行命令
docker run ubuntu:20.04 echo "Hello Docker"

# 交互式运行
docker run -it ubuntu:20.04 /bin/bash

# 后台运行
docker run -d nginx

# 指定名称
docker run --name mynginx -d nginx

# 映射端口
docker run -d -p 80:80 nginx

# 挂载卷
docker run -v /host/path:/container/path ubuntu:20.04

# 设置环境变量
docker run -e APP_ENV=production myapp

# 自动删除容器
docker run --rm ubuntu:20.04 echo "Temporary container"

查看容器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看运行中的容器
docker ps

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

# 查看最近创建的容器
docker ps -l

# 只显示容器 ID
docker ps -q

# 显示容器大小
docker ps -s

停止容器

1
2
3
4
5
6
7
8
9
10
11
# 停止单个容器
docker stop mynginx

# 停止多个容器
docker stop container1 container2 container3

# 强制停止
docker kill mynginx

# 停止所有运行中的容器
docker stop $(docker ps -q)

启动容器

1
2
3
4
5
# 启动已停止的容器
docker start mynginx

# 重启容器
docker restart mynginx

删除容器

1
2
3
4
5
6
7
8
9
10
11
# 删除已停止的容器
docker rm mynginx

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

# 删除所有已停止的容器
docker container prune

# 删除所有容器
docker rm -f $(docker ps -aq)

进入容器

1
2
3
4
5
# 使用 exec 进入运行中的容器
docker exec -it mynginx /bin/bash

# 使用 attach 附加到容器
docker attach mynginx

查看容器日志

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看容器日志
docker logs mynginx

# 实时查看日志
docker logs -f mynginx

# 查看最后 N 行
docker logs --tail 100 mynginx

# 查看特定时间段的日志
docker logs --since 2024-03-20T00:00:00 mynginx

# 显示时间戳
docker logs -t mynginx

容器资源管理

查看资源使用

1
2
3
4
5
6
7
8
# 查看容器资源使用情况
docker stats

# 查看特定容器
docker stats mynginx

# 不持续刷新
docker stats --no-stream

限制资源

1
2
3
4
5
6
7
8
# 限制内存使用
docker run -m 512m nginx

# 限制 CPU 使用
docker run --cpus="1.5" nginx

# 限制 CPU 核心数
docker run --cpuset-cpus="0-2" nginx

容器网络

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 创建网络
docker network create mynetwork

# 连接容器到网络
docker network connect mynetwork mynginx

# 断开网络
docker network disconnect mynetwork mynginx

# 查看网络
docker network ls

# 查看网络详情
docker network inspect mynetwork

数据卷管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 创建数据卷
docker volume create myvolume

# 查看数据卷
docker volume ls

# 查看数据卷详情
docker volume inspect myvolume

# 删除数据卷
docker volume rm myvolume

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

容器导出和导入

导出容器

1
2
# 导出容器为 tar 文件
docker export mynginx > mynginx.tar

导入容器

1
2
# 从 tar 文件导入
cat mynginx.tar | docker import - mynginx:imported

最佳实践

  • 使用有意义的容器名称
  • 合理设置资源限制
  • 使用数据卷持久化数据
  • 定期清理未使用的容器
  • 监控容器资源使用
  • 使用健康检查
  • 合理使用容器网络

总结

本文详细介绍了 Docker 容器的创建、管理、监控和资源限制等功能。通过掌握这些命令,你可以高效地管理和操作 Docker 容器。下一篇文章将介绍 Docker Compose 的使用。