首页/云/云与容器速查/docker run 创建并启动容器
容器与 Docker106 条

docker run 创建并启动容器

最核心的命令:从镜像创建容器并启动。常用组合 -d(后台)、--name(命名)、-p(端口)、-v(挂载)、-e(环境变量)、--restart(重启策略)。

云与容器速查云更新于 2026-10-13

docker run 是干什么的

docker run 从镜像创建容器并启动它,是 Docker 里最核心的命令:后台运行、命名、端口映射、目录挂载、环境变量、重启策略这些生产必备项都通过选项一次给全。它等价于先 create 再 start,容器一旦被删除,没有挂载出来的数据也随之消失。

基本信息

基本语法docker run [选项] 镜像 [命令] [参数]
高频选项-d 后台运行 / -it 交互终端 / --rm 退出即删除 / --name 指定名字
网络端口-p 宿主端口:容器端口,--network 指定网络
持久化-v 挂载卷或宿主机目录,-e 注入环境变量
重启策略--restart no、on-failure、always、unless-stopped
资源限制--memory、--cpus 限制内存与 CPU,缺省时可以吃满宿主机

典型使用场景

  • 临时跑一个工具容器:验证配置、导数据、做一次性任务,用 --rm 自动清理
  • 部署单机服务:小型站点或内部工具用现成镜像直接跑起来
  • 搭建本地开发环境:依赖服务容器化,团队成员用同一条命令拉起同样的环境
  • 排障复现:用相同的镜像、挂载与环境变量复现线上问题
  • 验证镜像内容:覆盖入口命令进入容器,确认文件与权限是否符合预期
  • 资源隔离:给不同服务限定内存与 CPU,避免互相抢占导致整体抖动

常用选项速查

选项作用常见误区
-d后台运行漏写会把终端占住,会话断开进程一起结束
-p 宿主:容器端口映射参数顺序写反,结果与预期相反
-v 宿主:容器目录或卷挂载宿主目录不存在时会自动建成目录而不是报错
-e 键=值注入环境变量把敏感信息写进命令历史与文档
--restart重启策略不设置则异常退出后不会自动拉起
--name容器命名不命名只能用随机名称做后续操作

生产常用形态

生产常用形态
docker run -d --name web \
  -p 8080:80 \
  -v /data/html:/usr/share/nginx/html:ro \
  -e TZ=Asia/Shanghai \
  --restart unless-stopped \
  --memory 512m --cpus 1 \
  nginx:1.27
# 启动后立刻确认状态,避免容器秒退没人发现
docker ps --filter name=web
容器内 PID 1 退出容器就停止:启动脚本写错或把前台进程放到后台,都会让容器瞬间退出,此时应看 docker logs 输出的 PID 1 内容。
数据要放在挂载卷或宿主目录里:容器内文件系统随容器删除而消失,把数据库数据目录留在容器内是最典型的丢数据方式。
重启策略决定故障恢复行为:on-failure 只在非零退出时重启,always 连手工停止也会拉起,unless-stopped 介于两者之间,生产常选后者。
镜像标签要写具体版本:用 latest 时同一条命令在不同时间拉到的可能是不同版本,出问题时无法复现。

上线前的检查项

  • 确认镜像标签是具体版本,而不是会随时间漂移的最新标签
  • 确认数据目录已经挂载到宿主或卷,容器删除后数据仍然存在
  • 确认端口绑定的地址范围,内网服务不要默认绑定全部网卡
  • 确认重启策略与业务语义一致,避免手工停止后被自动拉起
  • 确认内存与 CPU 限制已经设置,防止单个容器拖垮整机
  • 启动后立刻查看状态与日志,确认容器没有启动即退出
端口映射与目录挂载写错时容器往往照样能启动,问题要等业务访问或重建时才暴露:把这两项纳入部署前的检查清单,比事后排查省事得多。

易错点

  • 忘记 -d 让进程前台运行,SSH 一断容器也被带走
  • -p 把容器端口写在前面,映射结果与预期相反,服务对外打不开
  • 把宿主目录挂到容器内已有内容的路径上,宿主目录把镜像内容整体遮住
  • 不挂载卷就跑有状态服务,容器重建后数据全部丢失
  • 不设内存上限,容器把宿主机内存吃满,牵连同机其他服务一起故障

数据来源与参考

  • Docker Docs:docker run
  • Docker Docs:Docker run reference

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌