Docker容器生命周期管理详解
Docker容器生命周期管理详解
一、Docker容器生命周期状态
Docker 容器具有完整的生命周期状态,从创建到销毁,每个阶段都有其特定的作用和命令支持:
- Created(已创建):容器已创建但尚未运行
- Running(运行中):容器正在运行,执行进程活跃
- Paused(暂停):容器进程被挂起,暂时停止调度
- Stopped/Exited(已停止/退出):容器运行完毕或被手动停止
- Dead(死掉):异常中止或资源清理失败时的状态
二、Docker容器生命周期管理命令
1. 创建容器
docker create 命令:创建容器但不启动
docker create --name mycontainer nginx
docker run 命令:创建并启动容器
docker run -d --name mycontainer nginx
常用参数:
-d, --detach:后台运行容器--name:指定容器名称-p:端口映射,格式:主机端口:容器端口-v:挂载卷,格式:主机路径:容器路径-e:设置环境变量-m:限制内存使用--cpus:限制CPU使用--restart:设置重启策略--rm:容器退出时自动删除
2. 启动容器
docker start 命令:启动已创建的容器
docker start mycontainer
常用参数:
-a, --attach:附加STDOUT/STDERR并向前传递信号-i, --interactive:保持STDIN打开
3. 运行容器
docker run 命令:创建并启动容器(常用组合)
docker run -d --name webserver -p 80:80 nginx
4. 暂停容器
docker pause 命令:暂停容器运行
docker pause mycontainer
5. 恢复容器
docker unpause 命令:恢复暂停的容器
docker unpause mycontainer
6. 停止容器
docker stop 命令:优雅停止容器
docker stop mycontainer
常用参数:
-t, --time:停止前等待时间(默认10秒)
7. 强制停止容器
docker kill 命令:强制终止容器
docker kill mycontainer
常用参数:
-s, --signal:发送指定信号(默认SIGKILL)
8. 重启容器
docker restart 命令:重启容器
docker restart mycontainer
常用参数:
-t, --time:停止前等待时间(默认10秒)
9. 删除容器
docker rm 命令:删除已停止的容器
docker rm mycontainer
常用参数:
-f, --force:强制删除运行中的容器-v, --volumes:删除容器关联的卷-l, --link:删除指定的连接
10. 查看容器状态
docker ps 命令:查看运行中的容器
docker ps
常用参数:
-a:显示所有容器(包括已停止的)-q:仅显示容器ID
11. 查看容器日志
docker logs 命令:查看容器日志
docker logs mycontainer
常用参数:
-f:跟踪日志输出--tail:显示最后N行-t:显示时间戳
12. 进入容器
docker exec 命令:在运行中的容器执行命令
docker exec -it mycontainer /bin/bash
常用参数:
-i:保持STDIN打开-t:分配伪终端
docker attach命令:附加到运行中的容器
docker attach mycontainer
13. 查看容器详细信息
docker inspect 命令:查看容器详细信息
docker inspect mycontainer
14. 查看容器资源使用
docker stats 命令:查看容器资源使用情况
docker stats mycontainer
15. 查看容器进程
docker top 命令:查看容器内运行的进程
docker top mycontainer
16. 容器间文件复制
docker cp 命令:在容器和主机间复制文件
docker cp localfile mycontainer:/path/in/container
docker cp mycontainer:/path/in/container localfile
三、常用操作示例
1. 批量操作
批量停止所有运行中的容器:
docker stop $(docker ps -q)
批量删除已停止的容器:
docker rm $(docker ps -aq -f status=exited)
批量启动所有容器:
docker start $(docker ps -aq)
2. 自动重启策略
docker run -d --restart unless-stopped nginx
3. 临时容器运行
docker run --rm myapp:test ./run_tests.sh
4. 资源限制
docker run -d -m 512m --cpus=1.0 nginx
5. 端口映射
docker run -d -p 8080:80 nginx
6. 数据卷挂载
docker run -d -v /host/path:/container/path nginx
7. 环境变量设置
docker run -d -e MYSQL_ROOT_PASSWORD=password mysql
8. 交互式运行
docker run -it ubuntu /bin/bash
四、生命周期管理最佳实践
- 使用
--name参数为容器指定有意义的名称 - 合理设置重启策略确保服务可用性
- 使用资源限制防止单个容器占用过多资源
- 定期清理已停止的容器释放系统资源
- 使用
docker logs监控容器运行状态 - 优雅停止容器使用
docker stop而非docker kill - 生产环境建议使用
docker-compose或Kubernetes进行管理 - 定期备份重要容器的数据卷
0