docker run 一步完成容器创建与启动,核心是合理选用参数:-d 后台运行、-p 端口映射、-v 挂载数据、-it 交互调试、--name 指定名称,实现按需定制。

直接用 docker run 就能一步完成创建和启动,不用先 create 再 start。关键在选对参数,让容器按你需要的方式跑起来。
最简运行:镜像名就够了
比如本地已有 nginx 镜像,执行:
docker run nginx
这会前台运行一个 nginx 容器,终端会被占住,日志实时输出。适合调试,但没法继续敲其他命令。
后台运行:加 -d 参数
生产环境或日常使用,一般要让它在后台跑:
-
docker run -d nginx—— 启动后返回容器 ID,不阻塞终端 - 配合
--name指定易记的名字:docker run -d --name my-nginx nginx
让服务可访问:端口映射 -p
镜像默认监听的端口(如 nginx 的 80)在容器内,宿主机访问不到,必须映射:
-
docker run -d -p 8080:80 --name web nginx—— 宿主机 8080 → 容器 80 - 多个端口可以重复写
-p:-p 8080:80 -p 8443:443 - 想自动分配宿主机端口?用
-P(大写),Docker 从 49153 开始随机选
持久化数据和配置:挂载目录 -v
容器重启后内部文件会丢失,用 -v 把宿主机目录挂进去:
docker run -d -p 8080:80 -v /my-nginx-html:/usr/share/nginx/html nginx- 左边是宿主机路径,右边是容器内路径,冒号不能少
- 首次运行时如果宿主机目录不存在,Docker 会自动创建
进容器调试:交互式运行 -it
想登录容器内部看文件、查进程,就用交互模式:
-
docker run -it ubuntu:22.04 /bin/bash—— 启动 Ubuntu 容器并直接进入 bash -
-i保持输入打开,-t分配伪终端,两个通常一起用 - 退出时输入
exit或按Ctrl+D,容器也会停止(除非加了-d)
把常用参数组合起来,一条命令就能搭好一个可用的服务。记住核心逻辑:镜像是模板,run 是实例化,参数决定它怎么活。











