docker start 参数有哪些具体用法和选项?

99ANYc3cd6
预计阅读时长 10 分钟
位置: 首页 参数 正文

docker start 是 Docker 中一个非常基础且常用的命令,用于启动一个或多个已经停止的容器。

docker start 参数
(图片来源网络,侵删)

基本语法

docker start [OPTIONS] CONTAINER [CONTAINER...]
  • [OPTIONS]:命令的可选参数。
  • CONTAINER:要启动的容器,你可以指定一个或多个容器 ID 或容器名称。
  • [CONTAINER...]:表示可以传入多个容器,用空格隔开。

常用参数 (OPTIONS)

docker start 命令本身的参数并不多,核心功能是启动容器,以下是主要的可选参数:

-a, --attach

  • 作用:启动容器后,立即附加到容器的标准输入、输出和错误流上。
  • 场景:当你启动一个容器,并且希望立即看到它的实时输出日志时,这个参数非常有用,这相当于 docker startdocker attach 的组合。
  • 注意:如果你按 Ctrl+C 退出附加模式,容器不会停止,它会继续在后台运行。

示例

# 启动一个名为 my-web-server 的容器,并附加到它的终端上
docker start -a my-web-server

-i, --interactive

  • 作用:以交互模式运行容器,并保持标准输入(STDIN)打开。
  • 场景:这个参数通常与 -a-d 结合使用,但更常见的是与 docker run-it 组合,单独使用 docker start -i 会附加到容器的 stdin,让你可以像在交互式 shell 中一样向容器输入命令。
  • 注意:如果容器启动后没有运行一个持续监听 stdin 的程序(比如一个 shell),你按 Ctrl+C 退出时,容器可能会停止。

示例

# 启动一个容器,并附加到它的标准输入,允许你输入命令
docker start -i my-interactive-container

--checkpoint

  • 作用:从指定的检查点恢复容器。
  • 场景:这是一个高级功能,用于实验性功能 Container Checkpoints,它允许你“暂停”一个容器(包括其内存状态)到一个文件中,之后可以从这个文件恢复容器的运行状态。
  • 依赖:需要运行时(如 containerd)和 Docker 守护进程支持此功能。

示例

docker start 参数
(图片来源网络,侵删)
# 从名为 my-checkpoint 的检查点恢复容器
docker start --checkpoint my-checkpoint my-container

--checkpoint-dir

  • 作用:指定检查点文件的存储目录。
  • 场景:与 --checkpoint 配合使用,用于指定检查点文件的位置。

示例

# 从指定目录下的检查点恢复容器
docker start --checkpoint-dir /path/to/checkpoints --checkpoint my-checkpoint my-container

实战示例

假设我们有一个已经停止的容器 my-app

示例 1:最基本的启动

# 使用容器名称启动
docker start my-app
# 使用容器 ID (前几位即可) 启动
docker start a1b2c3d4e5f6

执行后,容器会在后台运行。

示例 2:启动并附加到容器

# 启动容器,并立即查看其输出
docker start -a my-app

这会启动容器,并将容器的 stdoutstderr 打印到你的终端,如果容器运行的是一个 Web 服务器,你可能会看到启动日志。

docker start 参数
(图片来源网络,侵删)

示例 3:启动多个容器

# 同时启动 my-app 和 my-database 两个容器
docker start my-app my-database

示例 4:结合 docker ps 查看结果

启动容器后,你可以使用 docker ps 来确认它是否正在运行。

# 启动容器
docker start my-app
# 查看正在运行的容器
docker ps
# 你应该能在列表中看到 my-app,STATUS 列会显示 "Up" 及其运行时间

相关命令

理解 docker start 时,最好也了解它的“兄弟”命令:

命令 作用 对比 docker start
docker run 创建一个新的容器并启动它,如果容器不存在,它会先创建。 docker start 只作用于已存在停止状态的容器。docker run 是从零开始。
docker stop 停止一个正在运行的容器,发送 SIGTERM 信号,等待 graceful shutdown。 docker start 的反操作,用于从“运行”变为“停止”。
docker restart 停止然后重新启动一个容器,可以看作是 docker stop + docker start 的快捷方式。 它是一个组合命令,而 docker start 只是启动部分。
docker pause 暂停容器中所有进程。 docker start 会将容器从“暂停”状态恢复到“运行”状态。docker unpause 也能做到这一点,但 docker start 更通用。

参数 全称 描述
-a --attach 启动后附加到容器的标准输出流
-i --interactive 以交互模式运行,保持标准输入打开
--checkpoint 从指定检查点恢复容器(实验性功能)
--checkpoint-dir 指定检查点文件的存储目录(实验性功能)

对于绝大多数日常使用场景,你只需要记住:

  • docker start <container_name/container_id>:在后台启动一个已停止的容器。
  • docker start -a <container_name/container_id>:启动容器并立即查看其输出。
-- 展开阅读全文 --
头像
PowerQuery参数管理如何高效配置与维护?
« 上一篇 今天
iPhone X Max拆机会影响手机吗?
下一篇 » 44分钟前

相关文章

取消
微信二维码
支付宝二维码

最近发表

标签列表

目录[+]