Docker容器添加映射端口的两种实现方法

 更新时间:2023年07月04日 10:40:19   作者:进步进步再进步  
本文主要介绍了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 宿主机的映射端口
如果有进程存在则表示有映射

同理,你也可以通过这种方式来删除添加错误的端口

到此这篇关于Docker容器添加映射端口的两种实现方法的文章就介绍到这了,更多相关Docker 添加映射端口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker安装ElasticSearch和Kibana的问题及处理方法

    Docker安装ElasticSearch和Kibana的问题及处理方法

    这篇文章主要介绍了Docker安装ElasticSearch和Kibana的问题及遇到问题解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • Docker swarm如何通过docker-compose部署应用

    Docker swarm如何通过docker-compose部署应用

    这篇文章主要介绍了Docker swarm如何通过docker-compose部署应用问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • docker安装RabbitMQ及安装延迟插件的详细过程

    docker安装RabbitMQ及安装延迟插件的详细过程

    MQ(message queue)字面意思上来说消息队列,是一种跨进程的通信机制,用于上下游传递消息,本文给大家详细介绍docker安装RabbitMQ及安装延迟插件的过程,感兴趣的朋友一起看看吧
    2022-06-06
  • docker 指定IP地址、与主机同网段IP

    docker 指定IP地址、与主机同网段IP

    这篇文章主要介绍了docker 指定IP地址、与主机同网段IP,非常具有实用价值,需要的朋友可以参考下
    2017-05-05
  • Docker上部署 nps 和 npc 实现内网穿透

    Docker上部署 nps 和 npc 实现内网穿透

    本文介绍了如何使用Docker部署nps和npc实现内网穿透。nps是一款高性能的内网穿透代理服务器,npc是nps的客户端,可以将内网服务映射到公网上。通过Docker的容器化技术,可以方便地部署和管理nps和npc,同时保证了应用的隔离性和安全性。
    2023-04-04
  • Docker环境下VHostScan的部署与使用教程

    Docker环境下VHostScan的部署与使用教程

    VHostScan是一款功能强大的虚拟主机扫描工具,能够执行反向查找、检测泛域名场景、处理通配符和动态默认页面等,是网络安全测试和网站管理的实用工具,本教程将详细介绍如何在Docker环境下快速部署和使用VHostScan,感兴趣的可以了解一下
    2026-04-04
  • CentOS 7.9 安装 docker20.10.12的过程解析

    CentOS 7.9 安装 docker20.10.12的过程解析

    这篇文章主要介绍了CentOS 7.9 安装 docker20.10.12 的相关资料,安装软件包时卸载旧软件包,如果已经安装这些程序,请卸载他们以及相关的依赖项,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • 一文讲解如何查看一个docker镜像有哪些版本

    一文讲解如何查看一个docker镜像有哪些版本

    这篇文章主要给大家介绍了关于如何查看一个docker镜像有哪些版本的相关资料,文中通过图文介绍的非常详细,对大家学习或者使用docker具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-04-04
  • Docker如何配置Redis容器持久化

    Docker如何配置Redis容器持久化

    这篇文章主要介绍了Docker如何配置Redis容器持久化问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Docker使用镜像仓库的方法

    Docker使用镜像仓库的方法

    这篇文章介绍了Docker使用镜像仓库的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01

最新评论