插件窝 干货文章 docker run -d -p 什么意思

docker run -d -p 什么意思

容器 端口 Docker 映射 419    来源:    2025-04-08

在Docker中,docker run -d -p 是一个常用的命令组合,用于启动容器并配置其运行方式。以下是分解说明:


1. docker run

  • 作用:创建并启动一个新的容器实例。
  • 示例docker run [OPTIONS] IMAGE_NAME

2. -d 选项

  • 全称--detach
  • 作用:以“后台(分离)模式”运行容器,容器启动后不会占用当前终端。
  • 对比:不加 -d 时,容器会在前台运行(输出日志到终端,退出终端可能导致容器停止)。
  • 示例bash docker run -d nginx # 后台运行Nginx容器

3. -p 选项

  • 全称--publish
  • 作用:将容器的端口映射到主机的端口,允许外部访问容器内的服务。
  • 语法-p <主机端口>:<容器端口>
  • 示例bash docker run -d -p 8080:80 nginx # 将主机的8080端口映射到容器的80端口
    • 访问方式:通过主机的IP和端口(如 http://localhost:8080)访问容器内的Nginx服务。

4. 组合使用 -d -p 的典型场景

docker run -d -p 主机端口:容器端口 镜像名
  • 实际用例bash docker run -d -p 3306:3306 mysql:latest
    • 后台运行MySQL容器,并将主机的3306端口映射到容器的3306端口。

5. 其他常见搭配选项

  • --name:为容器指定名称(否则Docker会随机生成)。 bash docker run -d -p 8080:80 --name my_nginx nginx
  • -v:挂载数据卷(持久化数据)。 bash docker run -d -p 8080:80 -v /host/path:/container/path nginx

6. 验证端口映射

  • 查看正在运行的容器及端口映射: bash docker ps 输出示例: CONTAINER ID IMAGE COMMAND PORTS NAMES abc123 nginx "nginx -g..." 0.0.0.0:8080->80/tcp my_nginx

总结

  • -d:让容器在后台运行。
  • -p:配置端口映射,使外部能访问容器服务。
  • 典型命令docker run -d -p <主机端口>:<容器端口> <镜像名>