全书目录

第十篇:Docker 完全指南 —— 国际港口集装箱宇宙

第四章:`docker run` —— 从模板造出一只真正能跑的货柜

1 分钟 233 字 第 150 / 962 个阅读单元

Docker 初学者最大的错觉是:

“我学 Docker 就是在背 docker run 参数。”

其实不是。

docker run 的真正意义是:

把镜像变成容器,并在启动时补上运行时配置。

一个典型命令:

bash
docker run -d \
  --name my-nginx \
  -p 8080:80 \
  nginx:latest

拆开看:

text
docker run
├── -d                 后台运行
├── --name my-nginx    给容器起名字
├── -p 8080:80         端口映射:宿主机8080 → 容器80
└── nginx:latest       用哪个镜像模板
#1. -p 是真的“对外开港口”

Docker 官方文档明确强调一件很多人会写错的事:

text
EXPOSE ≠ 自动对外开放端口

真正把端口发布到宿主机的是:

bash
-p HOST_PORT:CONTAINER_PORT

比如:

bash
docker run -d -p 3000:3000 myapp:latest
#2. -e 是启动时塞环境变量
bash
docker run -d \
  --name app \
  -p 3000:3000 \
  -e NODE_ENV=production \
  -e PORT=3000 \
  myapp:latest
#3. --rm 是“用完即焚”的临时货柜
bash
docker run --rm alpine:latest echo "hello docker"

这类容器适合:

  • 临时执行一个命令
  • 本地测试
  • 一次性脚本