CentOS 系统 Docker 创建过的容器如何修改映射端口

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: CentOS 系统 Docker 创建过的容器如何修改映射端口
简介:平常我们在创建 Docker 容器的时候都会使用 -p 来指定容器和宿主机之间的端口映射。本篇文章指导如何修改创建过的容器端口映射

在这里插入图片描述

1. 执行环境

1.1 操作系统

aliyun ECS :CentOS 7.2 64位

1.2 docker 版本

Server Version: 19.03.2

2. 操作步骤

2.1 停止 docker 容器

在停止容器之前,我们需要知道要修改的容器ID,以别名 redis 为例

[xxx@xxx ~]# docker inspect redis
[
    {
        "Id": "49db307d55334ffaccdf1d27958e5aa42e8d22cab14a38351d6df3446da8be56",
        "Created": "2020-05-07T13:06:30.952749892Z",
        "Path": "docker-entrypoint.sh",
        ...
    }
]
AI 代码解读

redis的容器ID 记下 49db307d55334ffaccdf1d27958e5aa42e8d22cab14a38351d6df3446da8be56

执行停止容器操作,虽然可以直接执行第二步,但是建议养成优雅退出的习惯。docker stop redis 防止数据的异常

2.2 停止 docker 服务

systemctl stop docker
AI 代码解读

2.3 修改容器 hostconfig.json文件

① 进入 docker 容器文件夹内

[root@single ~]# cd /var/lib/docker/containers/49db307d55334ffaccdf1d27958e5aa42e8d22cab14a38351d6df3446da8be56
AI 代码解读

② 修改 hostconfig.json 文件

[root@single 49db307d55334ffaccdf1d27958e5aa42e8d22cab14a38351d6df3446da8be56]# vim hostconfig.json 
AI 代码解读

只展示了需要修改的部分,内容展示如下:

...
    "PortBindings":{
        "6379/tcp":[
            {
                "HostIp":"",
                "HostPort":"16379"
            }
        ]
    },
...
AI 代码解读

如果在创建容器时没有指定端口映射,那么此JSON文件中 PortBindings 属性是个空的对象,如果创建容器时指定了端口映射,就如同JSON文件中一样。那么就可以修改映射了,例如将文中 16379修改为16380

"PortBindings":{
        "6379/tcp":[
            {
                "HostIp":"",
                "HostPort":"16380"
            }
        ]
    }
AI 代码解读

在很多文章中看到说需要修改 config.v2.json 文件,但是在我实际操作中,并不需要。修改过 hostconfig.json 文件后看了一眼 config.v2.json ,发现已经自动更新了

2.4 启动 docker 服务

[xxx@xxx ~]# systemctl start docker
AI 代码解读

2.5 启动容器

[xxx@xxx ~]# docker start redis
AI 代码解读

3. 完事

纸上得来终觉浅,绝知此事要躬行
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
打赏
0
0
0
0
15
分享
相关文章
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
191 3
C 语言在计算机科学中尤其在硬件交互方面占据重要地位。本文探讨了 C 语言与硬件交互的主要方法,包括直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射 I/O 和设备驱动程序开发
C 语言在计算机科学中尤其在硬件交互方面占据重要地位。本文探讨了 C 语言与硬件交互的主要方法,包括直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射 I/O 和设备驱动程序开发,以及面临的挑战和未来趋势,旨在帮助读者深入了解并掌握这些关键技术。
94 6
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
141 3
centos系统清理docker日志文件
通过以上方法,可以有效清理和管理CentOS系统中的Docker日志文件,防止日志文件占用过多磁盘空间。选择合适的方法取决于具体的应用场景和需求,可以结合手动清理、logrotate和调整日志驱动等多种方式,确保系统的高效运行。
380 2
Docker部署MaxKB详细步骤(window系统)
这篇文章详细介绍了如何在Windows系统上使用Docker部署MaxKB,并提供了从安装Docker到运行MaxKB容器的详细步骤,以及如何通过浏览器访问和配置MaxKB来使用ollama和llama3模型进行问答。
1428 1
Docker部署MaxKB详细步骤(window系统)
容器内的Nodejs应用如何获取宿主机的基础信息-系统、内存、cpu、启动时间,以及一个df -h的坑
本文介绍了如何在Docker容器内的Node.js应用中获取宿主机的基础信息,包括系统信息、内存使用情况、磁盘空间和启动时间等。核心思路是将宿主机的根目录挂载到容器,但需注意权限和安全问题。文章还提到了使用`df -P`替代`df -h`以获得一致性输出,避免解析错误。
129 0
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
293 3
在Linux中,如何实时抓取并显示当前系统中tcp 80 端口的网络数据信息?
在Linux中,如何实时抓取并显示当前系统中tcp 80 端口的网络数据信息?
在Docker中,如何控制容器占用系统资源(CPU,内存)的份额?
在Docker中,如何控制容器占用系统资源(CPU,内存)的份额?

热门文章

最新文章