Docker Nginx 映射多个端口的实现

简介

在使用 Docker 运行 Nginx 时,我们可以通过映射容器端口和主机端口的方式来实现多个端口的访问。本文将介绍如何通过 Docker 实现 Nginx 的多端口映射,并给出详细的步骤和代码示例。

整体流程

下面是实现 Docker Nginx 多端口映射的整体流程:

journey
    title Docker Nginx 多端口映射流程
    section 准备工作
    入门指导 -> 检查 Docker 是否已安装
    入门指导 -> 检查 Nginx 镜像是否已下载
    section 创建容器
    检查端口是否被占用 -> 决定映射的端口号
    创建并运行 Nginx 容器 -> 指定映射的端口号
    section 验证映射
    验证映射 -> 访问容器内的 Nginx 默认页面
    验证映射 -> 使用浏览器访问本地主机的映射端口

步骤详解

1. 准备工作

在开始实现多端口映射之前,我们需要先确保以下几项准备工作已完成:

  • 检查 Docker 是否已安装:在终端中执行 docker version 命令,如果能正常输出 Docker 版本信息,则表示 Docker 已安装。
  • 检查 Nginx 镜像是否已下载:在终端中执行 docker images 命令,查看是否存在名为 nginx 的镜像。

2. 创建容器

在决定映射的端口号之前,我们需要先检查目标端口是否已被占用。可以使用 docker ps 命令查看当前正在运行的容器以及它们占用的端口。

假设我们希望将容器的 80 端口映射到主机的 8080 端口,具体步骤如下:

  1. 检查端口是否被占用:

    sudo netstat -tuln | grep 8080
    

    如果没有任何输出,则表示该端口未被占用。

  2. 创建并运行 Nginx 容器:

    docker run -d -p 8080:80 nginx
    

    解释:

    • docker run:运行容器命令
    • -d:后台运行容器
    • -p 8080:80:将主机的 8080 端口映射到容器的 80 端口
    • nginx:使用的镜像名称

3. 验证映射

完成容器的创建和运行后,我们可以进行映射的验证,确保 Nginx 默认页面可以通过映射端口访问。

  1. 验证容器内的 Nginx 默认页面:

    docker exec -it 容器ID curl http://localhost:80
    

    解释:

    • docker exec:在容器中执行命令
    • -it:以交互模式执行命令
    • 容器ID:容器的唯一标识符
    • curl http://localhost:80:访问容器内的 Nginx 默认页面

    如果能够正常输出 HTML 代码,则说明容器内的 Nginx 默认页面访问正常。

  2. 使用浏览器访问本地主机的映射端口: 在浏览器地址栏中输入 http://localhost:8080,如果能够看到 Nginx 默认页面,则说明映射成功。

代码示例

下面是实现 Docker Nginx 多端口映射的代码示例:

# 检查端口是否被占用
sudo netstat -tuln | grep 8080

# 创建并运行 Nginx 容器
docker run -d -p 8080:80 nginx

# 验证容器内的