Docker 初学者最大的错觉是:
“我学 Docker 就是在背
docker run参数。”
其实不是。
docker run 的真正意义是:
把镜像变成容器,并在启动时补上运行时配置。
一个典型命令:
docker run -d \
--name my-nginx \
-p 8080:80 \
nginx:latest拆开看:
docker run
├── -d 后台运行
├── --name my-nginx 给容器起名字
├── -p 8080:80 端口映射:宿主机8080 → 容器80
└── nginx:latest 用哪个镜像模板#1. -p 是真的“对外开港口”
Docker 官方文档明确强调一件很多人会写错的事:
EXPOSE ≠ 自动对外开放端口真正把端口发布到宿主机的是:
-p HOST_PORT:CONTAINER_PORT比如:
docker run -d -p 3000:3000 myapp:latest#2. -e 是启动时塞环境变量
docker run -d \
--name app \
-p 3000:3000 \
-e NODE_ENV=production \
-e PORT=3000 \
myapp:latest#3. --rm 是“用完即焚”的临时货柜
docker run --rm alpine:latest echo "hello docker"这类容器适合:
- 临时执行一个命令
- 本地测试
- 一次性脚本