如何对已有docker容器增加新的端口映射详解
作者:三途河畔人 发布时间:2022-10-02 20:04:36
标签:docker,端口,映射
前言
在运行容器时指定映射端口运行后,如果想要添加新的端口映射,使用两种方式都可以,需要的朋友可以参考下
背景
一般在运行容器时,我们都会通过参数 -p(使用大写的-P参数则会随机选择宿主机的一个端口进行映射)来指定宿主机和容器端口的映射,例如
docker run -it -d --name [container-name] -p 8088:80 [image-name]
这里是将容器内的80端口到宿主机的8088端口
在运行容器时指定映射端口运行后,如果想要添加新的端口映射,可以使用以下两种方式:
方式一
将现有的容器打包成镜像,然后在使用新的镜像运行容器时重新指定要映射的端口
#1、停止现有容器
docker stop container-name
#2、将容器commit成为一个镜像
docker commit -a "作者" -m "a new image" [容器名称或id] [打包的镜像名称]:[版本标签]
#常用OPTIONS说明:
# -a :提交的镜像作者
# -c :使用Dockerfile指令来创建镜像
# -m :提交时的说明文字
# -p :在commit时,将容器暂停
#或者使用export和import将容器导出为镜像
docker export 容器ID > 压缩包名称.tar
cat 压缩包名称.tar | docker import - 镜像名称:版本标签
#例如:
#导出
$ docker export 1efca3906 > centos.tar
#导入
$ cat docker/centos.tar | docker import - test/centos:v1
#3、用新的镜像生成一个新的容器并配置需要的映射端口
docker run -it -d --name container-name -p p1:p1 -p p2:p2 new-image-name
方式二
修改要端口映射的容器的配置文件(推荐)
#1、查看容器的信息
docker ps -a
#2、查看容器的端口映射情况,在容器外执行:
docker port 容器ID 或者 docker port 容器名称
#3、查找要修改容器的全ID
docker inspect 容器ID |grep Id
#4、进到/var/lib/docker/containers 目录下找到与全 Id 相同的目录,修改 其中的hostconfig.json 和 config.v2.json文件:
#注意:若该容器还在运行中,需要先停掉
docker stop 容器ID
#再停掉docker服务
systemctl stop docker
#5、修改hostconfig.json如下
#格式如:"{容器内部端口}/tcp":[{"HostIp":"","HostPort":"映射的宿主机端口"}]
"PortBindings":{"22/tcp":[{"HostIp":"","HostPort":"3316"}],"80/tcp":[{"HostIp":"","HostPort":"180"}]}
#6、修改config.v2.json在ExposedPorts中加上要暴露的端口
#格式如:"{容器内部端口}/tcp":{}
"ExposedPorts":{"22/tcp":{},"80/tcp":{}}
最后改完之后,重启docker服务
systemctl restart docker
此时,可以查看宿主机端口是否和容器内端口映射成功,在容器外执行
netstat` `-an |``grep` `宿主机的映射端口
来源:https://blog.csdn.net/qq_42511420/article/details/124926620
0
投稿
猜你喜欢
- 博客联盟大概从2006年中旬开始使用WordPress程序,用的久了,就习惯了,总以为一切设计都是合理的。最近给几个客户用WordPress
- MeeGo今日低调地发布了1.0版,这是第一个稳定的,面向上网本和移动产品的版本,并且1.1版的开发已经进行中,它支持触摸式设备,例如手机、
- 每次争取到一位新客户的时候你可能总是想向他/她证明你可以做好并且你渴望再次合作。如果你对于未来是否可以与此客户再次合作不是很确定,那么你可能
- 注意:入侵时目标如果是linux服务器,看切忌清理痕迹的时候别忘记history命令的记录哦!1、修改/etc/profile将HISTSI
- 内容摘要:据网络相关消息,近日北京网监与刑警配合,成功破获一起网络安全公司员工利用黑客手段DDOS攻击,向国内某署名网络游戏服务器发起洪水之
- 北京时间11月11日早间消息 我们将用八篇连续的报道,来深入剖析北电——这家加拿大历史上曾经最有价值
- 关于FedoraFedora 是一个 Linux 发行版,是一款由全球社区爱好者构建的面向日常应用的快速、稳定、强大的操作系统。它允许任何人
- DNS服务器所提供的服务是完成将主机名和域名转换为IP地址的工作。为什么需要将主机名和域名转换为IP地址的工作呢?这是因为,当网络上的一台客
- 注册表编辑器使用不当可造成严重问题,这些问题可能需要重新安装操作系统。Microsoft 不保证能够解决因为注册表编辑器使用不当而产生的问题
- 关于网络数据库里一些商业数据被盗窃后公布于网上;公司商业网站的产品价格数据又被恶意修改……类似这样的案例,在网上搜索了一下,实在不少。其原因
- 之前我们就报道过Chrome 即将迎来5.0 正式版,而且还将带来首个Mac 和Linux 平台的正式版本,今天这一切终于实现了,Chrom
- 最近体验了一下Godaddy共享主机上的Jsp/Java支持,感觉相当糟糕。竟然不支持struts的应用,至今尚未完全搞明白Godaddy是
- 大家好,我是A5安全小组 jack ,今天跟大家交流下 关于WEB服务器安全的相关问题。其实,在服务器和网站的安全设置方面,我虽然有一些经验
- 如何为西软数据做增量备份及恢复西软在实施阶段时,会设置好几个Linux shell的自动任务,把数据每天全库备份两次,并且并把数据通过ftp
- 最近以来,许多关系老百姓衣食住行的B2C网站开始大量涌现,有在网上卖童装、卖衬衫、卖内衣、卖鞋子、卖米面粮油的,一应俱全。而一家以鞋业行业网
- 描述解决VMware 15虚拟机桥接模式无法上网问题步骤1:在设置中找到 网络和internet—>>更改适配器选项-----&
- 既然是公网FTP服务器,就难免会遭遇一些恶意攻击,轻则丢失文件,重则造成FTP服务器甚至整个系统崩溃。怎样才能最大限度地保证它的安全性呢?一
- 早前,国内知名的CMS提供商动易网络提供了SiteFactory 3.6 CTP社区预览版的公测,获得了广大网友的踊跃支持。据观察,到自从C
- 1.先卸载centeros自带jdkrpm-qa|grepopenjdk查询出来的自带的openjdk2.删除rpm-e--nodeps3.
- 1 简介Apache Storm是一个免费开源、分布式、高容错的实时计算系统,可以用来处理大量的数据,类似于Hadoop。Apache St