首页 > 其他分享 >docker的几种端口映射

docker的几种端口映射

时间:2024-07-24 10:53:50浏览次数:16  
标签:container 宿主机 端口 几种 run docker 端口映射

1.端口映射介绍

Docker端口映射是指将容器内部的端口与宿主机的端口关联起来,这样可以从宿主机外部访问容器内的服务。默认情况下,容器内的端口仅对容器内的进程可见,无法从宿主机外部访问。端口映射使得外部网络可以通过宿主机上的一个端口访问容器内的服务。

2.端口映射案例

#最常见的写法,将容器的80端口映射到宿主机的88端口。
docker container run -d -p 88:80 nginx:1.20.1
   
#端口映射指定协议为tcp,默认情况下,使用就是tcp,因此通常对于tcp的服务可以不指定。   
docker container run -d -p 89:80/tcp nginx:1.20.1  
    
#端口映射指定为udp,对于服务本身使用的是udp协议的服务而言,此处需要显式指定。
docker container run -d -p 53:53/udp nginx:1.20.1  
    
#将端口映射明确绑定到具体的网卡上。   
docker container run -d -p 10.0.0.101:99:80/tcp nginx:1.20.1
    
#将端口映射明确绑定到具体的网卡上,并且宿主机的端口是随机的。    
docker container run -d -p 10.0.0.101::80/tcp nginx:1.20.1 
    
#端口范围映射,将宿主机的20,21端口映射到容器的20,21端口。    
docker container run -idp 10.0.0.101:20-21:20-21 alpine  
    
#映射连续的端口,可以使用多个-p参数即可。    
docker container run -idp 127.0.0.1:9200:9200 -p 10.0.0.101:9300:9300 alpine
    
#随机端口映射,随机指定端口    
docker container run -dP nginx:1.20.1

3.总结

    (1)对短选项进行合并时,需要注意短选项是否需要传参数,若需要穿参数,应该尽量往后靠;
    (2)当我们使用-p选项时,会自动进行端口映射,底层对应的是iptables的DNAT规则;
    (3)若有多个不连续的端口进行映射时,需要写多个"-p"选项即可;
    (4)使用"-P"(大写)时会自动进行端口映射,这个容器映射的端口取决于镜像对外暴露的服务端口(EXPOSE指令);
    (5)端口映射的语法格式为"-p 宿主机的IP地址:宿主机的端口号:容器的端口号:协议"。
    (6)docker外部节点访问容器时,底层采用的是DNAT技术,而容器访问外部服务,采用的是forward转发功能哟,并没有使用SNAT技术;

标签:container,宿主机,端口,几种,run,docker,端口映射
From: https://blog.csdn.net/qq_37182070/article/details/140656966

相关文章

  • docker的意义和安装方法
    docker就像一个集装箱,可以把你写的代码、软件等打包带走,走到哪都能用,不用担心环境问题。安装方法:Linux:1.更新系统:sudoaptupdate(Ubuntu/Debian)或sudoyumupdate(CentOS/Fedora)2.安装Docker引擎:curl-fsSLhttps://get.docker.com-oget-docker.sh&&shget-doc......
  • 服务器部署环境(docker安装Mysql + Redis + MongoDB)
    1.安装Docker1、选择要安装的平台Docker要求CentOS系统的内核版本高于3.10uname-r#通过uname-r命令查看你当前的内核版本官网地址2.卸载已安装的Docker,使用Root权限登录Centos。确保yum包更新到最新。sudoyumupdate如果操作系统没有安装过Dock......
  • 从零开始写 Docker(十九)---增加 cgroup v2 支持
    本文为从零开始写Docker系列第十九篇,添加对cgroupv2的支持。完整代码见:https://github.com/lixd/mydocker欢迎Star推荐阅读以下文章对docker基本实现有一个大致认识:核心原理:深入理解Docker核心原理:Namespace、Cgroups和Rootfs基于namespace的视图隔离:探索......
  • 41-50题矩阵和字符串 在Java中,将大写字符转换为小写字符的方法主要有以下几种:
    20240723一、数组最后几个和字符串的两个448.找到所有数组中消失的数字(和645.错误的集合差不多)283.移动零118.杨辉三角119.杨辉三角II661.图片平滑器(没看懂)598.区间加法II566.重塑矩阵303.区域和检索-数组不可变520.检测大写字母125.验证回文串二、在Jav......
  • 使用Docker和Kubernetes管理Java微服务
    使用Docker和Kubernetes管理Java微服务大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨如何使用Docker和Kubernetes来管理Java微服务。Docker和Kubernetes是现代微服务架构中不可或缺的工具,它们能够极大地简化应用程序的部署和管理,提高开发......
  • 前端开发大屏适配几种方案
    方案一:vw(单位)假设设计稿尺寸为1920*1080,直接使用 vw 单位,屏幕的宽默认为100vw,那么100vw=1920px,1vw=19.2px。新建px2vw.scss/使用scss的math函数@use"sass:math";//默认设计稿的宽度$designWidth:1920;//默认设计稿的高度$designHeight:1080;/......
  • 如何提高LoRa抗干扰能力来提升通信质量的几种技术分享
    LoRa(Long Range)技术凭借其远距离传输、低功耗和高抗干扰能力,在物联网(IoT)领域得到了广泛应用。LoRa技术强大的抗干扰能力不仅提高了信号的稳定性和通信距离,还提升了数据的可靠性。然而,面对复杂的无线环境,进一步提高LoRa的抗干扰能力对于确保数据可靠传输至关重要。本篇技术文章将......
  • docker 和 firewalld
    配置说明由firewalld管理docker网络。firewalld规则firewall-cmd--permanent--delete-zone=docker#非publiczone。二选一firewall-cmd--permanent--new-zone=dockerappfirewall-cmd--permanent--zone=dockerapp--add-interface=ens33firewall-cmd--permanent......
  • Windows 中重命名文件有哪几种方法?
    在日常的电脑使用中,重命名文件是一项常见且重要的任务。无论你是要整理文件夹、更新文档标题,还是纠正拼写错误,掌握多种重命名文件的方法都可以提高效率,让你的工作流程更加顺畅。以下是简鹿办公汇总的几种在Windows中重命名文件的有效方式,适合不同场景和偏好。1. 右键菜单法......
  • Docker:无法在 docker 映像中使用 pythonnet 和 |无法创建默认的 .NET 运行时,该运行时
    我正在尝试使用clrfromPythonnet使用.DLL引用将一种文件类型转换为另一种文件类型。这就是我的代码的样子-importclrclr.AddReference(dll_path)importRxLibrary#ConverttoASCFormat-----------input_file=f"./{filename}.rxd"......