github编辑

启动

启动方式概述

启动容器有两种方式:

  • 新建并启动:基于镜像创建新容器

  • 重新启动:将已终止的容器重新运行

由于 Docker 容器非常轻量,实际使用中常常是随时删除和新建容器,而不是反复重启同一个容器。

新建并启动

基本语法

docker run [选项] 镜像 [命令] [参数...]

最简单的例子

输出 "Hello World" 后容器自动终止:

$ docker run ubuntu:24.04 /bin/echo 'Hello world'
Hello world

这与直接执行 /bin/echo 'Hello world' 几乎没有区别,但实际上已经启动了一个完整的 Ubuntu 容器来执行这条命令。

交互式容器

启动一个可以交互的 bash 终端:

参数说明

参数
作用

-i

保持标准输入(stdin)打开,允许输入

-t

分配伪终端(pseudo-TTY),提供终端界面

-it

两者组合使用,获得交互式终端

在交互模式下可以执行命令:

docker run 的完整流程

执行 docker run 时,Docker 在后台完成以下操作:

常用启动选项

基础选项

选项
说明
示例

-d

后台运行(detach)

docker run -d nginx

-it

交互式终端

docker run -it ubuntu bash

--name

指定容器名称

docker run --name myapp nginx

--rm

退出后自动删除容器

docker run --rm ubuntu echo hi

端口映射

数据卷挂载

环境变量

资源限制

启动已终止容器

使用 docker start 重新启动已停止的容器:

容器内进程的特点

容器内只运行指定的应用程序及其必需资源:

可见容器中仅运行了 bash 进程。这种特点使得 Docker 对资源的利用率极高。

💡 笔者提示:容器内的 PID 1 进程很重要——它是容器的主进程,该进程退出则容器停止。详见后台运行章节。

常见问题

Q: 容器启动后立即退出

原因:主进程执行完毕或无法保持运行

详细解释见后台运行

Q: 无法连接容器内的服务

原因:未正确映射端口

Q: 容器内修改的文件丢失

原因:未使用数据卷,数据保存在容器存储层

详见数据管理

本章小结

操作
命令
说明

新建并运行

docker run

最常用的启动方式

交互式启动

docker run -it

用于调试或临时操作

后台运行

docker run -d

用于服务类应用

启动已停止的容器

docker start

重用已有容器

延伸阅读

最后更新于