如何把 Docker 镜像运行成容器?

docker run 镜像名:标签 即从镜像创建并启动容器;常用参数:-it 交互、-d 后台、--name 命名、-p 端口、-v 挂载、-e 环境变量。本文给出入门到常用的完整说明。

最佳实践
如何把 Docker 镜像运行成容器?封面

最简命令:docker run <镜像名:标签>——从镜像创建一个容器并启动。先 docker images 确认本地有哪些镜像(REPOSITORY:TAG 或 ID),然后按需加参数:-it 交互终端、-d 后台、--name 起名、-p 映射端口、-v 挂目录、-e 传环境变量。

从 images 到 run

docker images
# REPOSITORY     TAG      ID           ...
# ubuntu         22.04    8dbd9e392a96 ...

# 按名称:标签运行(交互进 bash)
docker run -it ubuntu:22.04 /bin/bash

# 按镜像 ID 运行(等价)
docker run -it 8dbd9e392a96 /bin/bash

常用参数组合

docker run -d \                       # 后台运行
  --name myapp \                      # 容器命名
  --restart unless-stopped \          # 重启策略
  -p 8080:80 \                        # 宿主8080 → 容器80
  -v app-data:/data \                 # 挂卷持久化
  -e MODE=prod \                      # 环境变量
  myimage:1.2                         # 镜像
  # (可选)覆盖默认命令: command args...

三种典型形态

# 1. 交互式试用(退出即删)
docker run -it --rm ubuntu:22.04 bash

# 2. 后台服务
docker run -d --name web -p 80:80 nginx

# 3. 一次性任务(跑完自动删)
docker run --rm myimage python etl.py

运行之后

docker ps                 # 看运行状态
docker logs -f myapp      # 看输出
docker exec -it myapp sh  # 进去排查
docker stop myapp         # 停止

镜像不在本地时 docker run 会自动从仓库拉取(相当于先 docker pull)。

观测云对照

容器一起,采集即通。 新容器上线后 DataKit 自动发现并开始采集 stdout 日志与资源指标,无需逐容器配置;服务可观测性从第一秒就建立。

常见问题(FAQ)

Q:run 的时候报找不到镜像?
A:先 docker images 确认在本地;不在会自动 pull,pull 失败检查镜像名拼写、仓库登录状态与网络。

Q:每次 run 都创建新容器?
A:对。重复运行会攒下一堆停止的同名容器,所以调试建议 --rm(退出自删)或 --name + 先删旧容器。

Q:容器一启动就退出?
A:主进程退出了——看 docker logs 容器名;调试命令类容器记得给前台命令(如 bash/sleep)。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台