展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 系统应用 > 系统工具 > 通过在 Docker 容器中转发端口实现应用程序访问

通过在 Docker 容器中转发端口实现应用程序访问

简介 本教程将带领你完成在Docker容器中进行端口转发的操作,从而让你的应用程序能够被外部访问。你会学到如何暴露端口、在容器和主机之间建立端口映射,以及在Docker Compose中进行端口转发的配置。学完本文后,你将对Docker端口转发有更深入的理解,并能将其运用到自己的项目里。 Docke

本文目录

    简介

    本教程将带领你完成在Docker容器中进行端口转发的操作,从而让你的应用程序能够被外部访问。你会学到如何暴露端口、在容器和主机之间建立端口映射,以及在Docker Compose中进行端口转发的配置。学完本文后,你将对Docker端口转发有更深入的理解,并能将其运用到自己的项目里。

    Docker 容器简介

    Docker 是一个广受欢迎的开源平台,它使开发者能够在容器化环境中构建、部署和运行应用程序。容器是轻量级、独立且可执行的软件包,其中包含运行应用程序所需的一切,包括代码、运行时环境、系统工具和库。

    Docker 容器提供了一种一致且可靠的方式来打包和分发应用程序,确保它们无论在何种底层基础设施上运行,方式都是相同的。这使得开发、测试和部署应用程序变得更加容易,同时也便于在生产环境中进行扩展和管理。

    要开始使用 Docker,你需要在系统上安装 Docker 引擎。在 Ubuntu 22.04 上,你可以通过运行以下命令来完成:

    sudo apt-get update
    sudo apt-get install -y docker.io
    sudo systemctl start docker
    sudo systemctl enable docker

    安装好 Docker 后,你可以使用 CODE_0 命令行工具来创建和管理容器。例如,要基于官方 Ubuntu 镜像创建一个新容器,你可以运行:

    docker run -it ubuntu:latest /bin/bash

    这将基于最新的 Ubuntu 镜像启动一个新容器,并让你进入容器内的 bash shell。从这里,你可以安装其他软件、运行你的应用程序等等。

    总的来说,Docker 容器为开发、部署和管理应用程序提供了一种强大且灵活的方式,使得在不同环境中确保应用程序行为的一致性和可靠性变得更加容易。

    理解 Docker 中的端口映射

    Docker 容器中的端口与网络

    当你运行一个容器时,它与主机系统以及其他容器相互隔离,包括其自身的网络栈。这意味着容器内运行的应用程序所暴露的任何网络端口,仅在容器内部可访问。

    要使应用程序能够从容器外部访问,你需要将容器的端口映射到主机系统上的相应端口。这个过程被称为“端口映射”或“端口转发”。

    在 Docker 中暴露端口

    要在 Docker 容器中暴露一个端口,你可以在运行 CODE0 命令时使用 CODE1 或 CODE_2 标志。例如,要在容器中暴露端口 80,并将其映射到主机上的端口 8080,你可以运行:

    docker run -p 8080:80 nginx

    这将启动一个 Nginx 网络服务器容器,并将容器内的端口 80 映射到主机系统上的端口 8080。

    你也可以通过多次使用 CODE_0 标志来指定多个端口映射:

    docker run -p 8080:80 -p 8443:443 nginx

    这将把容器内的端口 80 映射到主机上的端口 8080,把容器内的端口 443 映射到主机上的端口 8443。

    访问映射的端口

    一旦你将容器中的端口映射到主机上的端口,你就可以通过连接到主机上的相应端口来访问容器中运行的应用程序。例如,如果你将主机上的端口 8080 映射到容器中的端口 80,你可以通过在网页浏览器中访问 CODE_0 来访问该应用程序。

    总的来说,理解端口映射对于使基于 Docker 的应用程序能够从容器外部访问,以及实现容器与其他系统之间的通信至关重要。

    为应用程序访问暴露端口

    确定应用程序端口

    为应用程序访问暴露端口的第一步是确定应用程序正在监听的端口。此信息通常在应用程序的文档中提供,或者可以通过检查应用程序的代码或配置来确定。

    例如,如果你正在运行像 Nginx 这样的网络服务器,它可能正在监听端口 80(HTTP)和/或端口 443(HTTPS)。如果你正在运行数据库服务器,它可能正在监听特定端口,如 MySQL 的 3306 或 PostgreSQL 的 5432。

    使用 CODE_0 命令暴露端口

    一旦你确定了应用程序正在使用的端口,你可以在运行 CODE0 命令时使用 CODE1 或 CODE_2 标志将它们暴露给主机系统。这将把容器的端口映射到主机系统上的相应端口。

    例如,要在容器中暴露端口 80 并将其映射到主机上的端口 8080,你可以运行:

    docker run -p 8080:80 nginx

    这将启动一个 Nginx 网络服务器容器,并将容器内的端口 80 映射到主机系统上的端口 8080。

    暴露多个端口

    你可以通过多次使用 CODE_0 标志来暴露多个端口。例如,要在容器中暴露端口 80 和 443,并将它们映射到主机上的端口 8080 和 8443,你可以运行:

    docker run -p 8080:80 -p 8443:443 nginx

    这将把容器内的端口 80 映射到主机上的端口 8080,把容器内的端口 443 映射到主机上的端口 8443。

    通过暴露适当的端口,你可以确保基于 Docker 的应用程序能够从容器外部访问,从而允许用户和其他系统与你的应用程序进行交互。

    在容器与主机之间映射端口

    理解端口映射语法

    在 Docker 中暴露端口时,你使用以下语法将容器端口映射到主机端口:

    -p <主机端口>:<容器端口>

    例如,要将主机上的端口 8080 映射到容器中的端口 80,你可以使用:

    docker run -p 8080:80 nginx

    这将容器中的端口 80 映射到主机系统上的端口 8080。

    动态映射端口

    你也可以不指定特定的主机端口,而是让 Docker 在主机系统上选择一个可用端口,方法是省略主机端口:

    docker run -p 80 nginx

    这会将主机系统上的一个可用端口映射到容器中的端口 80。你可以通过运行 CODE_0 或检查容器的网络设置来找到映射的端口。

    映射多个端口

    你可以通过多次指定 CODE_0 标志来映射多个端口:

    docker run -p 8080:80 -p 8443:443 nginx

    这会将容器中的端口 80 映射到主机上的端口 8080,将容器中的端口 443 映射到主机上的端口 8443。

    查看映射的端口

    你可以使用 CODE_0 命令查看正在运行的容器的映射端口:

    docker port <容器名称>

    这会显示容器端口与主机端口之间的映射关系。

    通过了解如何在容器与主机系统之间映射端口,你可以确保基于 Docker 的应用程序能够从容器外部访问,从而允许用户和其他系统与你的应用程序进行交互。

    在 Docker Compose 中配置端口转发

    介绍 Docker Compose

    Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它允许你在一个 YAML 文件中定义应用程序的服务、网络和卷,从而更轻松地管理和部署应用程序。

    在 Docker Compose 中配置端口转发

    在 Docker Compose 文件中,你可以使用 CODE0 指令来配置端口转发。其语法与 CODE1 命令类似:

    version: "3"
    services:
      web:
        image: nginx
        ports:
          - 8080:80

    在此示例中,CODE_0 服务正在运行 Nginx 网络服务器,容器中的端口 80 被映射到主机系统上的端口 8080。

    你也可以通过多次指定 CODE_0 指令来映射多个端口:

    version: "3"
    services:
      web:
        image: nginx
        ports:
          - 8080:80
          - 8443:443

    这会将容器中的端口 80 映射到主机上的端口 8080,将容器中的端口 443 映射到主机上的端口 8443。

    动态端口映射

    与 CODE_0 命令类似,你也可以在 Docker Compose 中通过省略主机端口来使用动态端口映射:

    version: "3"
    services:
      web:
        image: nginx
        ports:
          - 80

    这会将主机系统上的一个可用端口映射到容器中的端口 80。你可以通过运行 CODE_0 来找到映射的端口。

    通过在 Docker Compose 文件中配置端口转发,你可以确保多容器应用程序能够从 Docker 环境外部访问,从而允许用户和其他系统与你的应用程序进行交互。

    端口转发的最佳实践

    使用特定的主机端口

    尽可能使用特定的主机端口,而不是依赖动态端口映射。这样更容易记住和访问你的应用程序,还能简化可能需要的任何防火墙或网络配置。

    避免端口冲突

    确保你选择的主机端口不会与主机系统上运行的任何其他服务或应用程序冲突。这可以防止端口冲突,并确保你的基于 Docker 的应用程序能够顺利访问。

    记录端口映射

    在你的代码以及任何部署或配置文档中,清楚地记录基于 Docker 的应用程序所使用的端口映射。这将使其他开发人员或运维团队更容易理解和使用你的应用程序。

    使用环境变量进行端口配置

    考虑使用环境变量来配置基于 Docker 的应用程序的端口映射。这样可以更轻松地更改端口配置,而无需修改应用程序代码或 Docker 配置文件。

    version: "3"
    services:
      web:
        image: nginx
        ports:
          - ${WEB_PORT}:80

    在此示例中,CODE_0 环境变量用于配置 Nginx 网络服务器所映射到的主机端口。

    监控和管理端口使用情况

    定期监控主机系统上的端口使用情况,以确保基于 Docker 的应用程序不会耗尽可用端口。考虑实施自动化工具或脚本来帮助管理和优化端口使用。

    通过遵循这些最佳实践,你可以确保基于 Docker 的应用程序可访问、安全且易于管理,从而更轻松地在容器化环境中开发、部署和维护你的应用程序。

    总结

    本全面指南为您呈现了Docker容器中端口转发的要点。现在您已明晰如何暴露端口、实现容器与主机之间的映射,以及在Docker Compose中进行端口转发配置。运用这些技术,您能够确保基于Docker的应用程序可从外部访问,达成无缝集成与部署。切记遵循端口转发的最佳实践,以维持安全高效的Docker环境。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    系统应用 系统工具
    相关文章 更多
    精品专题 更多
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    IOS软件

    正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

    AI

    正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

    Mac软件 更多
    Aperty macOS版
    Aperty macOS版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw macOS版
    AionClaw macOS版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy macOS版
    Loomy macOS版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirBuddy 3 macOS版
    AirBuddy 3 macOS版

    AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

    AirServer macOS版
    AirServer macOS版

    AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

    AnyDesk macOS版
    AnyDesk macOS版

    AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

    WINDOWS 更多
    讯飞绘文 网页版
    讯飞绘文 网页版

    讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

    Maya(Autodesk Maya) Windows版
    Maya(Autodesk Maya) Windows版

    Autodesk Maya 是面向影视、电视、动画和游戏行业的专业三维制作软件,集多边形与 NURBS 建模、角色绑定、关键帧和动作捕捉动画、Bifrost 特效模拟、材质开发及 Arnold 渲染于一体,

    Aperty Windows版
    Aperty Windows版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw Windows版
    AionClaw Windows版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy Windows版
    Loomy Windows版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirServer Windows版
    AirServer Windows版

    AirServer Windows版可把电脑变成AirPlay、Google Cast和Miracast无线投屏接收端,适合会议演示、课堂教学及家庭大屏分享。发送设备通常无需另装客户端,并可同时接收和智能排列多个镜像会话。