docker容器添加对外映射端口的实现

 更新时间:2023年09月08日 15:24:23   作者:程序新视界  
本文主要介绍了docker容器添加对外映射端口的实现 ,从而实现容器与外部网络的通信,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

首次启动容器指定映射端口

在容器首次启动是,可通过-p参数(-P参数则会随机选择宿主机的一个端口进行映射)来指定宿主机和容器端口的映射,例如:

docker run -it -d --name [container-name] -p 8088:80 [image-name]

上述命令将容器内的80端口映射到宿主机的8088端口。

参数说明

  • -d 表示后台运行容器
  • -t 为docker分配一个伪终端并绑定到容器的标准输入上
  • -i 是让容器的标准输入保持打开状态
  • -p 指定映射端口

新增映射端口

当容器已经运行之后,且容器中已经有配置改动,不方便重新创建逐一修改配置时,则可通过两种方式新增端口映射。

方式一:打包新镜像

如果正在运行的容器已经修改了很多配置,重新创建镜像,修改配置比较麻烦时,可在现有的容器基础上打包一个镜像。

然后在运行新镜像时进行端口映射的新增或修改。

基本步骤:

停止指定容器:

docker stop container-name

将容器commit成为一个镜像:

docker commit -m "New image with my changes" my-container my-new-image

提交时可以添加一些说明信息,比如使用 -m 选项后面跟的字符串。

需要注意的是,容器在提交之前需要先停止。如果容器正在运行,则提交操作将失败。此外,提交的容器必须是基于一个基础镜像构建的,否则提交操作也将失败。

用新镜像运行容器:

docker run -it -d --name container-name -p p1:p1 -p p2:p2 new-image-name

至此,原有容器内配置不变,在启动时进行了新的端口映射。

方式二:修改配置文件

修改配置文件,此种方式稍微有些麻烦,而且在操作过程中需要把的docker服务停掉,使用时需注意。

查看容器信息:

docker ps -a

查看容器的端口映射情况,在容器外执行:

docker port d5104ec757b6
# 或
docker port nginx

查找要修改容器的容器Id:

docker inspect d5104ec757b6 |grep Id

执行命令结果:

"Id": "d5104ec757b667d5647c61c9d6066fc9b7b3a675eaba6af4dc990989f78e99b7",

不同的容器Id不同,然后在/var/lib/docker/containers目录下找到与上述Id相同的目录,修改该目录下的 hostconfig.json 和 config.v2.json文件。

在修改之前,还需要停到容器和docker服务。

停掉容器:

docker stop d5104ec757b6

停掉docker服务:

systemctl stop docker

修改hostconfig.json,添加端口绑定"443/tcp": [{“HostIp”: “”,“HostPort”: “443”}],表示绑定端口443:

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

找到key为PortBindings的配置,在其value部分中新增了443相关的配置。

修改config.v2.json文件,在ExposedPorts中加上要暴露的端口,即443:

"ExposedPorts":{"443/tcp":{},"80/tcp":{}}

找到key为ExposedPorts的配置,在其value部分新增443的配置。

保持配置文件,重启docker服务和容器:

systemctl start docker
docker start d5104ec757b6

此时,再用前面提到的docker port命令即可看到新增的端口已经绑定成功。

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

相关文章

  • docker容器直接退出如何进入容器调试模式

    docker容器直接退出如何进入容器调试模式

    这篇文章主要介绍了docker容器直接退出,如何进入容器调试,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • 在Ubuntu中安装Docker和docker的使用方式

    在Ubuntu中安装Docker和docker的使用方式

    这篇文章主要介绍了在Ubuntu中安装Docker和docker的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • Windows下使用Docker部署Qdrant向量库镜像服务详细教学

    Windows下使用Docker部署Qdrant向量库镜像服务详细教学

    在 Windows 系统上直接安装 Qdrant 服务环境时,可能会因为依赖或权限等问题导致安装失败,这时可以借助 Docker 容器来部署 Qdrant 服务,下面就跟随小编一起来看看具体操作步骤吧
    2025-06-06
  • 设置docker的定时关闭和启动方式

    设置docker的定时关闭和启动方式

    文章介绍了在Docker中设置容器定时关闭和启动的两种方法:使用系统级定时任务(如cron)和使用Docker特定的解决方案,通过配置CronJob、DockerCompose或DockerSwarm,可以实现容器的定时启动和关闭
    2024-12-12
  • Linux下docker 容器退出bash的两种实现方法

    Linux下docker 容器退出bash的两种实现方法

    这篇文章主要介绍了Linux下docker 容器退出bash的两种实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 给docker配置指定ip的超详细图解

    给docker配置指定ip的超详细图解

    这篇文章主要给大家介绍了关于给docker配置指定ip的超详细图解教程,Docker容器的IP地址由Docker守护进程动态分配,默认情况下,它使用的是宿主机的IP地址,但是在某些情况下,您可能需要为Docker容器指定静态IP地址,需要的朋友可以参考下
    2023-09-09
  • Docker安装部署Redis数据库的实现步骤

    Docker安装部署Redis数据库的实现步骤

    本文主要介绍了Docker安装部署Redis数据库的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Docker exec 的实现原理介绍

    Docker exec 的实现原理介绍

    这篇文章主要介绍了Docker exec的实现原理,详细解读了docker exec这个操作背后,Linux Namespace更具体的工作原理,这种通过操作系统进程相关的知识,逐步剖析Docker容器的方法,需要的朋友可以参考一下
    2022-04-04
  • windows 10安装和使用docker

    windows 10安装和使用docker

    这篇文章介绍了windows 10安装和使用docker的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • Docker的java镜像制作及Podfile使用详解

    Docker的java镜像制作及Podfile使用详解

    文章浏览阅读169次。这里做个一个演示,给一个jar包和dockefile上传demo目录,就可以用如下的命令进行打包。dockerfile内容如下# 基础镜像# 设定时区# 拷贝jar包# 入口通过命令看看我们打包的镜像是否成功运行这个镜像看看这个镜像的运行日志。
    2025-09-09

最新评论