Linux系统运维:修改docker容器与宿主机之间的端口映射,解决端口占用问题

目录

一、问题

二、docker端口映射

(一)docker端口映射定义

1、相关概念:

2、默认情况下,Docker容器会有一个端口映射:

3、端口范围:

(二)配置相关

1、指定端口映射

2、随机端口映射

3、端口映射的配置文件

三、docker端口映射的作用

四、docker端口映射的实现方式

(一)参数-P(大写p)进行随机映射

(二)参数-p(小写p)指定端口映射

1、命令格式

2、命令实例

五、问题解决过程

(一)端口映射配置        

(二)修改已启动容器的映射的端口

1、查看要修改映射端口的容器的ID

2、关闭docker服务

3、修改配置文件

4、启动docker服务

5、确认容器端口映射被修改

六、成果展示

(一)博客管理服务docker应用的端口更改展示

(二)视频监控平台管理服务docker应用的端口更改展示


一、问题

        应用服务是通docker容器部署,容器内的80端口默认是映射到宿主机的80端口上的,可以通过浏览器访问页面。

        现在,由于业务发展需要,宿主机的80端口要用作其他服务,因此需要修改docker容器的端口到宿主机的端口的映射关系。

二、docker端口映射

(一)docker端口映射定义

        在使用Docker时,容器的端口映射是一个核心概念,它允许容器与宿主机以及外部网络进行通信。docker端口映射可以将容器内部的服务绑定到宿主机上的一个或多个端口。通过端口映射,可以从外部网络访问容器内的服务。

1、相关概念:

        容器端口:容器内部运行的应用程序监听的端口。

        宿主机端口:你的物理机器或虚拟机上相应的端口。

2、默认情况下,Docker容器会有一个端口映射:

        当运行一个容器时,Docker会自动将容器的80端口映射到宿主机的80端口。这意味着如果运行一个Web服务器容器,并且没有指定其他端口映射,用户可以直接通过宿主机的80端口访问容器内的Web服务器。

3、端口范围:

        Docker允许映射任何端口,但宿主机的端口需要是开放的。通常,宿主机的端口范围是1024以上。

(二)配置相关

1、指定端口映射

        如果需要将容器的其他端口映射到宿主机的端口,可以在运行容器时使用-p--publish标志。例如:

        docker run -p 8080:80 nginx

        这个命令将容器的80端口映射到宿主机的8080端口。

2、随机端口映射

        如果没有指定端口映射,Docker会随机选择宿主机上的端口进行映射。

3、端口映射的配置文件

        在Docker Compose中,你可以在docker-compose.yml文件中指定端口映射,例如:

version: '3'services:webapp:ports:- "5000:5000"

        这将把容器的5000端口映射到宿主机的5000端口。

三、docker端口映射的作用

        1、通过将容器内的服务绑定到宿主机上的端口,可以使得外部网络可以通过宿主机的 IP 地址和端口号来访问容器内的服务。

        2、当在同一台主机上运行多个容器时,容器内的服务可能会监听相同的端口。通过端口映射,可以将这些容器内的服务绑定到不同的宿主机端口上,避免端口冲突。

四、docker端口映射的实现方式

(一)参数-P(大写p)进行随机映射

        docker run时,使用-P参数,Docker会随机选择一个宿主机端口映射到内部容器开放的端口。

(二)参数-p(小写p)指定端口映射

1、命令格式

        如果需要将容器的其他端口映射到宿主机的端口,可以在运行容器时使用-p--publish标志,也就是使用docker run时使用-p(--publish)。注意的是,在一个指定的端口上只能绑定一个容器  。

        命令为:

        docker run -p <宿主机端口>:<容器内部服务端口> image_name

2、命令实例

        实例如下:

        docker run -p 8080:80 nginx

        这个命令将容器的80端口映射到宿主机的8080端口。

五、问题解决过程

(一)端口映射配置

        在宿主机中创建容器,将容器内的80端口映射到宿主机的80端口

           #docker run -itd -p 80:80 wordpress

        效果如下: 

        

(二)修改已启动容器的映射的端口

1、查看要修改映射端口的容器的ID

        #docker ps -a

        此例中的容器ID为451afbc7bfc7

2、关闭docker服务

         #systemctl stop docker

3、修改配置文件

        找到容器配置文件并修改,将映射到宿主机的端口修改为8080。

        从/var/lib/docker/containers/文件夹中找到容器ID开头的文件夹,如下图示:

       找到文件 hostconfig.json,用vim进行编辑,如下图示:        

        修改hostconfig.json的PortBindings中的"HostPort"栏目,如下图示:

4、启动docker服务

        #systemctl start docker

5、确认容器端口映射被修改

六、成果展示

(一)博客管理服务docker应用的端口更改展示

        访问<宿主机IP>:8080,可以正常访问所部署的容器的服务页面。

(二)视频监控平台管理服务docker应用的端口更改展示

        AS-V1000视频监控平台也可以进行docker部署,也碰到端口映射的问题。

        通过修改映射关系到26088,通过访问<宿主机IP>:26088,可以正常访问所部署的容器的服务页面,可以正常看到实时视频,如下图所示。


文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/681776.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ArcGIS 脚本工具】格式化简单渲染图层或图层组

CAD加GIS是规划人的黄金搭档&#xff0c;不可偏废。 小编通常直接在ArcPro中加载CAD查看&#xff0c;这样可以保证CAD修改之后GIS能同步更新显示。 但是CAD在ArcPro中的显示多少有点水土不服。 比如湘源地块在ArcPro3.0中显示时会自动加上透明度&#xff0c;虽然这样可以看到…

LLM分布式训练---混合并行(2D 3D)

近年来&#xff0c;随着Transformer、MOE架构的提出&#xff0c;使得深度学习模型轻松突破上万亿规模参数&#xff0c;传统的单机单卡模式已经无法满足超大模型进行训练的要求。因此&#xff0c;我们需要基于单机多卡、甚至是多机多卡进行分布式大模型的训练。 而利用AI集群&a…

硬件知识积累 音频插座的了解,看音频插座的原理图来了解音频插座的引脚。

1. 音频接口 音频插座是一种用于连接音频信号线路的电子元件&#xff0c;常见于音频设备&#xff08;如音响、耳机、话筒等&#xff09;中。它的主要作用是将电子信号转化为声音信号&#xff0c;以满足人们对于音乐、电影、游戏等方面的需求。 根据插头形状的不同&#xff0c;音…

sql Server2015安装——参考的教程

1.sql Server安装包来自&#xff1a;https://mp.weixin.qq.com/s/Pe_YbWw_MgwjzzZhQWIYfA 2.需要的替换文件和补丁&#xff1a;https://blog.csdn.net/Auspicious_air/article/details/108315154 https://blog.csdn.net/m0_60477996/article/details/126748477 3.安装manger…

postgresql中控制符带来的数据错觉

简介 在数据库字符集中&#xff0c;由于数据质量的控制不够完善&#xff0c;每一个字符集都并不是所有字符的能看见&#xff0c;有些字符的展示可能会出现乱码&#xff0c;甚至出现不同字符展示成同样效果的可能&#xff0c;给开发人员造成分析错觉。 当数据库存入了控制符&am…

关于位操作符的实际应用<C语言>

前言 位操作符在C语言初学阶段相对其他操作符来说&#xff0c;是一种难度比较大的操作符&#xff0c;且运用较少的一类操作符&#xff0c;但是位操作符并不是“一无是处”&#xff0c;合理运用的位操作符&#xff0c;在某些场景下可以优化算法&#xff0c;提高代码的执行效率&a…

GRS认证的优点和缺点是什么?

GRS认证&#xff08;Global Recycled Standard&#xff09;的优点主要体现在以下几个方面&#xff1a; 环保性&#xff1a;GRS认证鼓励和保证产品中使用更多的回收材料&#xff0c;从而减少对原始资源的需求和开采&#xff0c;有助于降低环境负荷&#xff0c;促进资源的循环利用…

Python入门到精通,一个月就够了!前字节大佬超详细系统学习路线

毫无疑问&#xff0c;Python 是当下最火的编程语言之一。 对于许多未曾涉足计算机编程的领域「小白」来说&#xff0c;深入地掌握 Python 看似是一件十分困难的事。 感觉很迷茫&#xff1f;学了一段时间还是不入流&#xff1f;很大一部分原因是因为你没有一个完整的知识体系&…

python日常消费数据占比分析总结年消费方向

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 整体消费情况 消费趋势 特定领域消费数据

大数据面试题 —— 数据仓库

目录 数据仓库是什么数据仓库和数据库的区别为什么要对数据仓库分层数仓分层&#xff0c;以及每一层的作用维度建模的三种模型范式建模、维度建模维度建模过程&#xff0c;如何确定这些维度 ***维度模型的各个维度之间是怎么聚合的聚合过程的数据倾斜怎么解决&#xff1f;数据质…

pyqt6的安装,使用-1

pyqt6安装的话&#xff0c;在自己所用的环境里安就可以&#xff0c;之前写有yolov5,yolov8的环境配置&#xff0c;python3.8的我安装就没有问题&#xff0c;打开anaconda&#xff0c;激活自己的环境 把这复制进去 pip install pyqt6 pip install pyqt6-tools 这个安装完了之后…

基于stm32的spi从机实验HAL库编程

目录 基于stm32的spi从机实验HAL库编程前言业务场景硬件设计接线配置swd接口配置spi配置DMA配置中断配置系统时钟配置工程生成代码写点从机代码上机现象后记本文使用的测试工程 基于stm32的spi从机实验HAL库编程 前言 在微控制器的世界中&#xff0c;串行外设接口(SPI)是一种…