Docker - 使用容器
Docker - 使用容器
Section titled “Docker - 使用容器”本章探讨了在 Docker 容器生命周期中,用于管理和与其交互的常用命令。
检查容器 (docker inspect)
Section titled “检查容器 (docker inspect)”以 JSON 格式提供关于容器的详细底层信息。对于查找 IP 地址、卷挂载(volume mounts)、环境变量(environment variables)、端口映射(port mappings)等非常有用。
# 按名称或 ID 检查容器docker inspect my-running-container查看进程 (docker top)
Section titled “查看进程 (docker top)”显示特定容器内正在运行的进程(processes),类似于 Linux 中的 top 命令。
docker top my-running-container查看资源使用情况 (docker stats)
Section titled “查看资源使用情况 (docker stats)”提供一个或多个正在运行容器的资源使用统计信息(CPU、内存、网络 I/O、磁盘 I/O)的实时流。
# 显示所有正在运行容器的统计信息docker stats
# 显示特定容器的统计信息docker stats container1 container2按下 Ctrl+C 退出实时流。
暂停和取消暂停 (docker pause, docker unpause)
Section titled “暂停和取消暂停 (docker pause, docker unpause)”这些命令使用 cgroups freezer 暂停或恢复容器内的所有进程。
# 暂停容器中的所有进程docker pause my-running-container
# 恢复已暂停容器中的进程docker unpause my-running-container暂停对于临时释放资源或对容器状态进行快照(尽管卷(volume)数据不会冻结)很有用。
停止、启动、重启 (docker stop, start, restart, kill)
Section titled “停止、启动、重启 (docker stop, start, restart, kill)”这些命令管理容器的运行状态:
docker stop <container>: 向主进程(main process)发送 SIGTERM 信号,允许优雅地关闭(graceful shutdown)(等待默认超时时间,然后发送 SIGKILL)。docker kill <container>: 立即发送 SIGKILL 信号,强制停止容器。docker start <container>: 启动一个或多个已停止的容器。docker restart <container>: 停止然后启动一个容器。
docker stop my-containerdocker start my-container移除容器 (docker rm)
Section titled “移除容器 (docker rm)”删除一个或多个容器。容器必须先停止才能移除,除非使用 -f(force,强制)标志。
# 移除一个已停止的容器docker rm my-stopped-container
# 停止并移除一个正在运行的容器docker rm -f my-running-container附加到容器 (docker attach)
Section titled “附加到容器 (docker attach)”将终端(terminal)的标准输入(standard input)、输出(output)和错误流(error streams)连接到容器内运行的主进程。对于与前台进程(foreground processes)交互很有用。
# 附加到运行交互式 shell 或应用程序的容器docker attach my-interactive-container使用 Ctrl+P, Ctrl+Q 分离(detach)而无需停止容器。请注意,通常更推荐使用 docker exec 来在运行中的容器内执行附加命令或获取一个 shell。
Docker 容器生命周期概述
Section titled “Docker 容器生命周期概述”容器通常会经历以下状态(states):
- Created(已创建): 容器已创建(例如,通过
docker create或docker run的第一步),但尚未启动。 - Running(正在运行): 容器正在积极执行其主进程 (
docker run,docker start)。 - Paused(已暂停): 容器内的所有进程都被暂停 (
docker pause)。 - Stopped/Exited(已停止/已退出): 容器的主进程已完成或被终止 (
docker stop,或进程已完成/崩溃)。 - Removing(正在移除): 容器正在被删除 (
docker rm)。 - Dead(死亡): 守护进程(daemon)无法访问容器(不常见)。
start、stop、pause、unpause、kill 和 restart 等命令使容器在这些状态之间转换,而 rm 则完全移除容器。