如何做别人的网站,网站制作的核心技术,青柠视频免费版中文字幕,wordpress常用技巧目录
1 容器生命周期概述
2 容器创建#xff08;docker create#xff09;
2.1 docker create命令详解
2.2 创建流程解析
2.3 创建与运行的区别
3 容器启动#xff08;docker start#xff09;
3.1 docker start命令详解
3.2 启动流程解析
3.3 启动与运行的区别
…目录
1 容器生命周期概述
2 容器创建docker create
2.1 docker create命令详解
2.2 创建流程解析
2.3 创建与运行的区别
3 容器启动docker start
3.1 docker start命令详解
3.2 启动流程解析
3.3 启动与运行的区别
4 容器运行管理
4.1 查看运行状态
4.2 暂停与恢复docker pause/unpause
4.3 停止与重启docker stop/restart
5 容器删除docker rm
5.1 删除命令详解
5.2 删除流程解析
5.3 数据持久化策略
6 容器生命周期实践示例
7 常见问题与解决方案
7.1 容器启动后立即退出
7.2 端口冲突
7.3 容器无法删除
8 总结 1 容器生命周期概述 Docker容器的生命周期包含多个关键状态和转换过程理解这些状态及其转换对于有效管理容器至关重要容器生命周期主要包括以下状态和操作 2 容器创建docker create
2.1 docker create命令详解 docker create命令用于创建一个新的容器但不立即启动它 docker create [选项] 镜像 [命令] [参数...] 常用选项 --name为容器指定名称-p/--publish发布容器端口到主机-v/--volume挂载数据卷-e/--env设置环境变量--restart配置重启策略-it分配交互式终端 示例 docker create --name myweb -p 8080:80 nginx:latest 2.2 创建流程解析 用户执行docker create命令Docker客户端将请求发送给Docker守护进程守护进程检查镜像是否存在不存在则尝试拉取创建容器文件系统基于镜像层可写层应用所有配置选项网络、卷、环境变量等返回创建的容器ID客户端显示创建结果 2.3 创建与运行的区别 特性 docker create docker run 容器状态 仅创建不启动 创建并立即启动 执行速度 较快 较慢包含启动过程 使用场景 需要预先配置后启动 需要立即运行的容器 后续操作 需要手动start 已自动启动 日志输出 无 立即开始产生日志 3 容器启动docker start
3.1 docker start命令详解 docker start命令用于启动一个或多个已停止的容器 docker start [选项] 容器 [容器...] 常用选项 -a/--attach附加STDOUT/STDERR并转发信号-i/--interactive附加容器的STDIN--checkpoint从检查点恢复 示例 docker start -ai myweb 3.2 启动流程解析 用户执行docker start命令Docker客户端将请求发送给守护进程守护进程准备容器运行时环境初始化网络栈如果未初始化挂载所有配置的卷执行容器入口点命令返回启动结果给客户端 3.3 启动与运行的区别 docker run实际上是docker create和docker start的组合 # 以下两条命令效果相似
docker run -d --name myweb nginx
docker create --name myweb nginx docker start myweb 关键区别 docker run无法设置某些只能在create阶段设置的参数docker create start可以更精确控制创建和启动过程docker run会自动附加终端除非使用-d 4 容器运行管理
4.1 查看运行状态 # 查看容器列表
docker ps # 仅运行中的容器
docker ps -a # 所有容器包括已停止的# 查看容器详情
docker inspect 容器# 查看容器日志
docker logs 容器# 查看容器资源使用
docker stats 容器 4.2 暂停与恢复docker pause/unpause 暂停容器会冻结容器内的所有进程 # 暂停容器
docker pause 容器# 恢复容器
docker unpause 容器 使用场景 临时释放CPU资源调试容器状态保持容器状态的同时暂停服务 注意事项 暂停的容器仍然占用内存网络连接会被保持但不会处理文件系统保持打开状态 4.3 停止与重启docker stop/restart 优雅停止容器 # 停止容器发送SIGTERM然后SIGKILL
docker stop [-t 超时时间] 容器# 强制停止立即发送SIGKILL
docker kill 容器# 重启容器
docker restart 容器 停止流程 发送SIGTERM信号等待默认10秒可通过-t调整如果仍未停止发送SIGKILL容器状态变为Exited 5 容器删除docker rm
5.1 删除命令详解 # 删除已停止的容器
docker rm 容器# 强制删除运行中的容器
docker rm -f 容器# 删除所有已停止的容器
docker container prune# 删除容器时同时删除关联的卷
docker rm -v 容器 5.2 删除流程解析 5.3 数据持久化策略 删除容器时默认会丢失容器内的所有数据要实现数据持久化 使用数据卷 docker run -v /data/host:/data/container nginx 使用命名卷 docker volume create myvol docker run -v myvol:/data/container nginx 绑定挂载主机目录 docker run -v $(pwd):/app nginx 6 容器生命周期实践示例 命名容器总是使用--name指定有意义的名称 docker run --name web-server nginx 自动清理运行一次性容器时使用--rm选项 docker run --rm alpine echo hello 重启策略根据需求配置适当的重启策略 docker run --restart unless-stopped redis 资源限制为容器设置适当的资源限制 docker run -m 512m --cpus 1.5 nginx 日志管理配置适当的日志驱动和大小限制 docker run --log-driver json-file --log-opt max-size10m nginx 7 常见问题与解决方案
7.1 容器启动后立即退出 问题现象容器状态显示Exited (0) 可能原因 容器内主进程结束没有前台进程保持运行配置错误导致快速失败 解决方案 检查容器日志 docker logs 容器 确保有前台进程运行使用交互模式调试 docker run -it --entrypoint sh 镜像 7.2 端口冲突 问题现象Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use 解决方案 更改主机端口 docker run -p 8080:80 nginx 停止占用端口的服务使用不同网络模式 docker run --network host nginx 7.3 容器无法删除 问题现象Error response from daemon: You cannot remove a running container 解决方案 先停止容器 docker stop 容器 docker rm 容器 强制删除 docker rm -f 容器 删除所有停止的容器 docker container prune 8 总结 Docker容器的生命周期管理是容器化技术的核心技能通过合理运用容器生命周期的各个阶段创建、启动、运行、暂停、停止和删除等命令和技巧可以高效地管理Docker容器确保应用程序的稳定运行和资源的有效利用。记住理解容器生命周期有助于调试问题、优化性能并构建可靠的容器化应用。