Docker容器添加映射端口的两种实现方法
目录
- 前言
- 方式一 简单粗暴
- 方式二 细水长流
前言
一般在运行容器时,我们都会通过参数 -p(使用大写的-P参数则会随机选择宿主机的一个端口进行映射)来指定宿主机和容器端口的映射,例如
docker run -itd -p 本地端口:容器内端口 所用镜像名
参数说明
- -d 表示后台运行容器
- -t 为docker分配一个伪终端并绑定到容器的标准输入上
- -i 是让容器的标准输入保持打开状态
- -p 指定映射端口
即创建容器时,你可以设置一个端口来进行宿主机和容器之间端口的映射,比如外边的8080与容器内的22进行映射后,那你可以使用 宿主机IP:8080 在xshell进行连接容器了
在这里我是创建了一个Centos容器,内部创建一个Hadoop的伪分布式集群,想要在浏览器打开HDFS的网站进行查看数据,所以想要给容器加个端口映射,下面就是我实操成功的方法,希望能够帮到正在阅读的读者。
方式一 简单粗暴
直接给现在容器停了(当然你要不想停也可以,只是打包会慢一点,当然我是没出意外,如果你怕出现特殊情况,那就先把容器停了),然后把这个容器打包成镜像,然后使用这个镜像开启新的容器,开启的时候加上你想新添加的端口将现有的容器打包成镜像,然后在使用新的镜像运行容器时重新指定要映射的端口
实操如下:
停止容器 docker stop 容器名字或者编号 将容器打包成镜像 docker commit 容器名字或者编号 你想起的镜像名字 用新镜像开启新容器 docker run -itd --name 你起的容器名 -p 外边的端口:容器内端口 -p 外边的端口:容器内的端口... 刚才的镜像名
方式二 细水长流
修改要容器的配置文件,这样就不需要每次想要添加端口映射,就得重新创建一边容器了
若该容器还在运行,先停掉
docker stop 容器ID
停掉docker服务
systemctl stop docker
查看容器信息:
docker ps -a
查看容器的端口映射情况,在容器外执行:
docker port 容器ID或者容器名称
查找要修改容器的容器Id(当然你也可以直接通过docker ps -a查看)
docker inspect 容器Id | grep Id
进到/var/lib/docker/containers 目录下找到与 Id 相同的目录,修改 hostconfig.json 和 config.v2.json文件:
cd /var/lib/docker/containers/容器Id
vim hostconfig.json
外部端口是10000,容器内部端口是50070
"50070/tcp": [{"HostIp": "","HostPort": "10000"}]

vim config.v2.json

这两个文件在写入的时候都建议写在原有端口的后面,我当时是写在前面了,但是不知道为啥就一直不生效,可能是先扫描已经配置过的端口的原因把
重新启动docker systemctl start docker 查看端口是否绑定成功 docker ps -a 当然你也可以用这个命令来查看宿主机和容器之间的端口是否映射成功 netstat -an | grep 宿主机的映射端口 如果有进程存在则表示有映射

同理,你也可以通过这种方式来删除添加错误的端口
栏 目:其它服务器
下一篇:linux高性能测试之CPU模式批量由cpupower转performance问题
本文地址:https://zz.feitang.co/server/29906.html
您可能感兴趣的文章
- 12-20Kubernetes中使用临时容器进行故障排查的方法
- 12-20Nginx设置HTTPS的方法步骤
- 12-20二进制方式安装 Kubernetes1.18.3版本实现脚本
- 12-20Nginx工作模式及代理配置的使用细节
- 12-20ZooKeeper分布式协调服务设计核心概念及安装配置
- 12-20Kubernetes部署可视化地图的十个步骤
- 12-20关于docker清理Overlay2占用磁盘空间的问题(亲测有效)
- 12-20Docker compose配置文件写法及命令使用示例
- 12-20openwrt安装docker并启动的操作方法
- 12-20云原生Kubernetes初始化容器Init使用教程


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-07新版Eclipse集成Tomcat时找不到server选项的解决方法
- 12-06IIS7 应用程序池自动回收关闭的解决方案
- 12-05Windows Server 2019安装VMware
- 12-05Windows服务器默认IE浏览器无法下载文件的解决方法
- 12-05Docker安装Jenkins全过程
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法





