Docker:对已有的容器,对当前容器映射的端口实时 (增删改查)

news2024/11/13 21:24:14

首先我的docker已经起了一个容器,我突然想把他的80->80映射的端口改成80->8080 但是我不想去新启动容器,想在现有容器基础上去修改,或者我想删除某个端口映射(只是大概思路)


如何寻找容器配置文件位置

首先我这边准备了一个容器 

 首先要去这个docker的配置文件目录

1.先找到他的id,因为在配置文件中,每个docker容器都有不同的配置文件,文件目录是以id命名的

docker inspect  nostalgic_mclaren | grep Id
# 这里的nostalgic_mclaren是我的容器名称,要根据指定的容器名称查出来Id号

 然后进入docker的根目录下的containers文件中  (也就是cd /var/lib/docker/containers

然后找到上面对应的id号的文件

上面查到的id号是7a1ec60c588619f094f61053432fa47344a772b6ce363b47a38c285571716c57
那么就是进入到这个文件夹里

cd /var/lib/docker/containers/7a1ec60c588619f094f61053432fa47344a772b6ce363b47a38c285571716c57

然后下面的所有操作,都是在这个目录下执行 

(      /var/lib/docker/containers/容器id号       )

 进来这个文件内

可以找到里边包含这两个文件,config.v2.json ,和,hostconfig.json 

这就是今天用到的两个文件

########################################

                                   附加:

可能会因为docker的根目录被移动的情况,那么根目录就不在/var/lib/docker/containers/

去   cat  /etc/docker/daemon.json    执行前面的命令找到docker root,docker的根目录就有containers文件

######################################## 


首先停止docker服务

systemctl stop docker
systemctl stop docker.socket

编辑hostconfig.json文件 

vi hostconfig.json

进入文件内修改 PortBindings的内容

现在我要加一个80映射80的

我在{}内添加了     "80/tcp":[{"HostIp":"","HostPort":"80"}] 

现在保存退出,然后编辑config.v2.json文件

vi config.v2.json

 ​​​

在ExposedPorts后面加上     "80/tcp":{} 

意思是暴露的端口 

现在保存退出

systemctl daemon-reload
systemctl start docker

重新加载并且启动docker,再启动容器查看 

你可以对比一下最上面的图片,可以清晰看到添加成功 


如果你想再添加一个端口,只需要将他们使用   ,   (逗号)隔开就行

如我想再添加一个1234映射4321,下面我就简单演示一下

systemctl stop docker
systemctl stop docker.socket

vi hostconfig.json 

vi config.v2.json

systemctl daemon-reload
systemctl start docker

这样就添加了第二个 


现在再进入到指定的容器目录下,再找到config.v2.json,和hostconfig.json两个文件

现在我要把80->80给他删了

systemctl stop docker
systemctl stop docker.socket
vi hostconfig.json

找到PortBindings段 

我要删80->80

所以我要把     ,"80/tcp":[{"HostIp":"","HostPort":"80"}]      删掉(注意,我这个是排在第二个所以要把,加上   并且注意外部的}不要多删了)

(下面这个是修改后的)

vi config.v2.json

找到ExposedPorts段 

 删除   ,"80/tcp":{}   和上面意思一样

 

systemctl daemon-reload
systemctl start docker

现在80->80就没了


目前就剩下了一个4321->1234

现在我要把他改成4321->80

systemctl stop docker
systemctl stop docker.socket
vi hostconfig.json

进入文件内修改 PortBindings的内容

 将

"1234/tcp":[{"HostIp":"","HostPort":"4321"}]

改为

"80/tcp":[{"HostIp":"","HostPort":"4321"}]

这样就修改完了

 

vi config.v2.json

 找到ExposedPorts段 

"1234/tcp":{}

改为

"80/tcp":{}

就可以了 

 

 

修改成功 


最基础的可以通过

docker ps -a

 查看指定的容器是否进行了改动

再有就是查看config.v2.jsonhostconfig.json两个文件的指定段

查看是否修改成功

########################################

附加:

有时你明明修改了,但是一查看修改后的文件,他又变回原来的文件内容了,也就是说你改了但是内容又变回去了,导致问题出现的原因可能是,没有关闭docker服务,没有systemctl daemon-reload

########################################

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【运维平台】WGCLOUD是如何判定主机下线的

只要被控主机的agent超过5分钟没有上报监测数据,系统就会判定该主机下线 这里的5分钟是默认的判定时间,如果agent上报时间是1分钟,那么agent超过1分钟没有上报数据,就会判定下线

优化IDEA卡顿,提示慢的问题,亲测有效!

1、优化JVM的参数 以下文件在idea安装目录的idea64.exe.vmoptions文件中。 一般来说我们只需要调整-Xms、-Xmx、-XX:ReservedCodeCacheSize三个即可,根据电脑的实际内存去调,我的电脑是48G内存,调到了 -Xms4096m (堆初始内存大小) -Xmx8192m…

多线程学习篇二:Thread常见方法

1. 常见方法 方法名 static 功能说明 注意点 start() 启动一个新线程,在新线程里面运行run方法 start 方法只是让线程进入就绪,里面代码不一定立刻运行(CPU 的时间片还没分给它)。每个线程对象的 start 方法只能调用一次,如果调用了多…

man命令详解

一、man命令简介: man是manual的缩写。操作手册之意。 本地的帮助文档称为man pages,这些操作手册随着软件安装而安装到本地,可以使用man命令进行查询。 随着软件包的安装有些操作手册会以文档的方式放在/usr/share/doc目录当中。…

初识HTTP

1、请求头中存储的是该请求的一些主要说明 accept:浏览器通过这个头告诉服务器,它所支持的数据类型 Accept-Charset:浏览器通过这个头告诉服务器,它支持哪种字符集 Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式 Accept-Lan…

微信这些危险设置一定要关!

你有仔细研究你的微信吗? 用了这么久的微信,才知道 有这么几个设置需要及时关闭! 逐个操作更安心1️⃣取消不常用的免密支付和自动续费 我>服务>钱包>底部 支付设置>免密支付/自动续费2️⃣取消对附近陌生人授权位置 2️⃣取消对…

2024最新最全:SQL注入漏洞原理及利用方式

1.SQL注入 原理: 在数据交互中,前端的数据传入到后台处理时,由于后端没有做严格的判断,导致其传入的恶意“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。漏洞产生于脚本,注入是针对数据库进行。 …

卷轴模式系统中的任务起源探索与趣味性设计策略分析

卷轴模式系统中的“卷轴任务”是一种通过用户参与特定任务来获得奖励的机制,旨在增加用户的参与度和活跃度。下面我们将分析卷轴任务的起源和发展,以及如何通过趣味性设计来提升用户体验。 一、卷轴任务的起源与发展 1. 起源 卷轴任务的概念最早可以追…

​2024年最新python教程全套,现在分享给大家(python全栈)

加V备注:“教程”领取python零基础入门教程以及1节免费公开课 全套学习资料内容分享: 一、Python全面学习方向路线 该内容详细整理了所有Python学习中常用到的技术点,汇总了各个领域的知识点,你可以用它来精准的寻找到对应的学…

springboot阿尔茨海默病预防网站-计算机毕业设计源码77742

目录 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2网站分析 2.1 可行性分析 2.2 网站流程分析 2.2.1网站开发流程 2.2.2 用户登录流程 2.2.3 网站操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 网站功能分析 …

一个开源的大语言模型(LLM)服务工具,支持Llama 3.1、Phi 3、Mistral、Gemma 2 等, 87.4k star你必须拥有(附源码)

这一年来,AI 发展的越来越快,大模型使用的门槛也越来越低,每个人都可以在自己的本地运行大模型。之前也给大家介绍过一些可以在本地运行大模型的项目,今天再给大家介绍一个最厉害的开源大模型服务框架——ollama。 项目介绍 Oll…

移动硬盘无法读取?别慌!这些方法助你恢复数据!

在我们的日常工作和生活中,移动硬盘作为重要的数据存储工具,承载着珍贵资料。然而,移动硬盘无法被电脑读取的情况时有发生,令人焦急。别慌,下面为大家详细介绍恢复移动硬盘数据的有效方法。 一、检查硬件连接和驱动问题…

gevent- monkey 补丁

协程gevent模块的使用_gevent.spawn-CSDN博客 阅读上面的博客,就可以理解 gevent.monkey 的作用,就是自动将socket、time等标准库替换成异步的库,是gevent让代码从同步变成异步的一种方式 现在来一段上面博客的代码 import gevent# 函数1 …

基于华为云服务器的网页部署

这仅仅是对自己使用过程中部分记录。后续有时间我会把从服务器租用到网页部署的全过程都整理下。 1. 华为云服务器的租用 可以前往华为云租弹性云服务器,具体配置可以看自己的需求,链接在这,我这边选择了ubuntu18.04版本的系统。   租用成…

春之学习体验:SpringBoot教育平台开发

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于在线视频教育平台当然也不能排除在外,随着网络技术的不断成熟,带动了在线视频教育平台,它彻底改变了过…

bestphp‘s revenge1

进入这个页面又是令人激动的代码审计环节. 不过再次之前呢先补充一些弥足珍贵的知识点. 前置知识点: call_user_func() call_user_func() 是 PHP 中的一个非常有用的函数,它允许你调用一个回调函数。回调函数可以是一个匿名函数(也称为闭…

C#实现串口中继

前一段时间为了测试硬件产品,发现,串口转发不太方便,于是自己写了一个简单的串口中继小程序,是基于C#开发的,可以将两个串口互通,方便自己在程序的使用,目前看起来应用还可以,现在把…

2024年最新软件测试面试题【附文档答案】

【纯干货!!!】花费了整整3天,整理出来的全网最实用软件测试面试大全,一共30道题目答案的纯干货,希望大家多多支持,建议 点赞!!收藏!!长文警告&…

《Discriminative Class Tokens for Text-to-Image Diffusion Models》ICCV2023

摘要 论文讨论了文本到图像扩散模型的最新进展,这些模型能够生成多样化和高质量的图像。然而,生成的图像常常缺乏细节,并且由于输入文本的歧义性,容易产生错误。为了解决这些问题,作者提出了一种非侵入式的微调技术&a…

AgentOhana:为智能体学习设计统一的数据和训练流水线

人工智能咨询培训老师叶梓 转载标明出处 多源数据异构性问题通常来源于多轮交互的Agent相关数据。不同数据集之间的数据结构、语法、标签约定和处理方法的多样性,使得LLM的训练和微调过程变得复杂,且容易引入偏差和不一致性。为了应对这些挑战&#xff…