docker run 用于从镜像创建并启动容器,一步完成创建与运行;基础用法包括前台执行临时命令(如 docker run ubuntu echo "hello")、后台常驻服务(加 -d)、交互式调试(加 -it),并常用 -p、--name、-e、-v、--restart 等配置端口、名称、环境、挂载和重启策略。
直接用 docker run 就能一步完成创建和启动容器,它比先 docker create 再 docker start 更常用、更简洁。
基础用法:运行一个临时命令
不加额外参数时,docker run 会前台运行并输出结果,执行完就退出:
-
docker run ubuntu:22.04 echo "Hello"—— 输出 Hello 后容器立即停止 -
docker run alpine:latest date—— 打印当前时间后退出
后台常驻服务:加 -d 参数
想让容器长期运行(比如 Web 服务),必须用 -d 让它在后台运行:
-
docker run -d --name my-nginx -p 8080:80 nginx:alpine—— 启动 Nginx,主机访问http://localhost:8080即可看到欢迎页 -
-d是 daemon 模式,避免终端被占用,也方便后续管理
交互式调试:-it 组合
需要进入容器内部操作(如查日志、装软件、手动测试),用 -it 分配交互终端:
-
docker run -it --rm ubuntu:22.04 /bin/bash—— 进入 Ubuntu 容器的 bash,退出即删容器(--rm自动清理) -
-i保持标准输入打开,-t分配伪终端,两者通常一起用
关键配置项:端口、名称、环境、挂载
实际使用中,这几个选项几乎每次都会出现:
-
端口映射:
-p 3000:3000(主机:容器),或-P(自动映射所有 EXPOSE 端口) -
指定名称:
--name db-postgres,比默认生成的随机名(如festive_kare)更易识别和管理 -
环境变量:
-e POSTGRES_PASSWORD=123,适合传敏感配置或启动参数 -
目录挂载:
-v ./data:/var/lib/postgresql/data,实现容器内数据持久化 -
重启策略:
--restart=always,保证宿主机重启后容器自动恢复运行











