我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MacOS下如何实现docker端口映射

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MacOS下如何实现docker端口映射

这篇文章给大家分享的是有关MacOS下如何实现docker端口映射的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

MacOS上的Docker网络结构图

MacOS下如何实现docker端口映射

从里到外的顺序是:容器->boot2docker(虚拟机)->物理机

如果只是自己开发使用的话,可以只把容器的端口映射到boot2docker(虚拟机)上就足够了 映射方法也很简单,就是网上说的,启动时加上-p参数

docker run -d -p 2345:5432 postgres

意思是将boot2docker的2345端口映射到容器的5432端口,如果不想指定端口可以直接使用-P参数,会随便分配端口

docker run -d -P postgres

映射成功后,就可以通过访问boot2docker(虚拟机)对应的端口来访问容器了 下面是刚刚启动的postgres,用的-P参数,随机分配的端口,这里是32770

bash-3.2$ docker psCONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                     NAMES44882d23ec12        postgres:latest     “/docker-entrypoint.   About an hour ago   Up 3 seconds        0.0.0.0:32770->5432/tcp   postgres

然后再使用boot2docker ip命令查看boot2docker(虚拟机)的ip

bash-3.2$ boot2docker ip192.168.59.103

这里是192.168.59.103,现在可以使用这个IP访问postgresql了

MacOS下如何实现docker端口映射

MacOS下如何实现docker端口映射

可以看到已经连接成功,到这里开发环境已经ok,要是想提供给别人访问的话,还要映射一层,就是从boot2docker(虚拟机)到物理机上的映射

由于涉及到boot2docker配置操作,所以必须要把所有运行中容器停止,然后停止boot2docker,容器到boot2docker的端口也必须显式指定,不能随机,要不然会对应不上,由于我之前有一个容器显式的指定了2345的端口,下面就把这个2345的端口映射到物理机的5432端口上

首先查看下端口,然后停掉所有容器,最后停掉boot2docker

bash-3.2$ docker psCONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                    NAMES1f926413f7a1        postgres:latest     “/docker-entrypoint.   11 seconds ago      Up 10 seconds       0.0.0.0:2345->5432/tcp   postgres            bash-3.2$ docker stop 1f91f9bash-3.2$ docker ps -aCONTAINER ID        IMAGE               COMMAND                CREATED             STATUS                     PORTS               NAMES1f926413f7a1        postgres:latest     “/docker-entrypoint.   9 minutes ago       Exited (0) 3 seconds ago                       postgres            bash-3.2$ boot2docker stopbash-3.2$

接下来开始配置boot2docker(虚拟机)映射

找到boot2docker对应的虚拟机名称,默认是boot2docker-vm,为了预防万一,最好还是确认下

bash-3.2$ VBoxManage list vms“boot2docker-vm” {edb4768e-b6f7-4122-8c67-c87d64e9b9fd}bash-3.2$

为boot2docker虚拟机添加对应的nat规则

bash-3.2$ VBoxManage modifyvm “boot2docker-vm” --natpf1 “tcp-port$i,tcp,,5432,,2345”;

这个表示将物理机的tcp 5432端口映射到指定虚拟机的tcp 2345端口,至于其他参数意思,可以看帮助VBoxManage --help 然后启动虚拟机,也就是boot2docker

bash-3.2$ boot2docker startWaiting for VM and Docker daemon to start............oooStarted.Writing /Users/sinyenn/.boot2docker/certs/boot2docker-vm/ca.pemWriting /Users/sinyenn/.boot2docker/certs/boot2docker-vm/cert.pemWriting /Users/sinyenn/.boot2docker/certs/boot2docker-vm/key.pemYour environment variables are already set correctly.

启动虚拟机后,我们看看虚拟机是否在监听这个端口就知道是否映射成功了

bash-3.2$ lsof -i:5432COMMAND    PID    USER   FD   TYPE             DEVICE SIZE/OFF NODE NAMEVBoxHeadl 8762 sinyenn   20u  IPv4 0x355348c0c406e2a1      0t0  TCP *:postgresql (LISTEN)

可以看到已经在监听了,说明映射成功,接下来就是启动容器了

bash-3.2$ docker start 1f91f9bash-3.2$ docker psCONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                    NAMES1f926413f7a1        postgres:latest     “/docker-entrypoint.   40 minutes ago      Up 3 seconds        0.0.0.0:2345->5432/tcp   postgres            bash-3.2$

容器启动成功后,就可以使用本地IP连接数据库了

MacOS下如何实现docker端口映射

MacOS下如何实现docker端口映射

可以看到数据库也已经连接成功,如果你没有开启防火墙的话,局域网内的机器是可以通过你的IP访问这个容器了。

感谢各位的阅读!关于“MacOS下如何实现docker端口映射”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MacOS下如何实现docker端口映射

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MacOS下如何实现docker端口映射

这篇文章给大家分享的是有关MacOS下如何实现docker端口映射的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。MacOS上的Docker网络结构图从里到外的顺序是:容器->boot2docker(虚拟机)->物
2023-06-19

docker如何设置端口映射

要设置Docker容器的端口映射,可以使用`-p`或`--publish`参数来指定要映射的端口。语法如下:```docker run -p : ```- ``是主机上要映射的端口号。- ``是容器内部的端口号。- ``是要运行的Docke
2023-09-23

docker如何映射多个端口

在Docker中,可以使用`-p`或`--publish`参数来映射多个端口。例如,要将容器的80端口映射到主机的8080端口,并且将容器的443端口映射到主机的8443端口,可以使用以下命令:```docker run -p 8080:8
2023-09-14

docker指定端口映射怎么实现

在Docker中,可以使用`-p`或`--publish`选项来指定端口映射。语法如下:docker run -p : 例如,将主机的端口8080映射到容器的端口80,可以使用以下命令:docker run -p 8080:80
2023-10-25

在Linux系统下如何使用SSH实现端口映射

这篇文章主要介绍“在Linux系统下如何使用SSH实现端口映射”,在日常操作中,相信很多人在在Linux系统下如何使用SSH实现端口映射问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在Linux系统下如何使用
2023-06-13

docker容器的四种端口映射怎么实现

本文小编为大家详细介绍“docker容器的四种端口映射怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“docker容器的四种端口映射怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。端口映射把容器的端
2023-06-30

docker端口映射后访问不了如何解决

如果你在Docker中映射了端口,但无法访问,请尝试以下步骤来解决问题:1. 确保Docker容器正在运行:通过运行`docker ps`命令,检查容器是否正在运行。如果容器已停止,请使用`docker start `命令启动它。2. 检查
2023-09-20

C#如何实现同步模式下的端口映射程序

这篇文章主要介绍了C#如何实现同步模式下的端口映射程序的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#如何实现同步模式下的端口映射程序文章都会有所收获,下面我们一起来看看吧。代码如下:class Progra
2023-07-02

csf ip端口如何映射

本篇内容介绍了“csf ip端口如何映射”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1,DNAT用法: IPx|*|IPy|*|tcp/
2023-06-27

Docker容器化Nginx的端口映射与网络配置(如何在Docker中配置Nginx的端口映射和网络?)

通过Docker容器化Nginx可增强隔离性、可移植性和可扩展性。端口映射允许将容器端口与主机端口关联,而网络配置可定义容器的网络访问属性。默认网络模式为bridge,但host模式可共享主机的网络接口。其他网络配置选项包括别名、暴露端口、链接以及DNS服务器和域的指定。
Docker容器化Nginx的端口映射与网络配置(如何在Docker中配置Nginx的端口映射和网络?)
2024-04-02

docker中volumes文件如何实现映射

小编给大家分享一下docker中volumes文件如何实现映射,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!实现通过docker-compose配置文件volum
2023-06-14

云主机如何映射端口

云主机映射端口是通过配置网络转发规则来实现的。以下是一般的步骤:1. 登录云主机。使用SSH工具或者远程桌面连接等方式登录到云主机。2. 打开防火墙。检查云主机的防火墙设置,确保需要映射的端口是开放的。3. 配置网络转发规则。根据云主机所使
2023-08-18

云服务器如何映射端口

云服务器可以通过以下步骤来映射端口:打开云服务器。在开始使用云服务之前,需要先打开并登录云服务器的Web服务器。登录后,可以在客户端输入Web服务器的IP地址、用户名和密码等信息,也可以使用默认的端口号。创建一个虚拟网卡。虚拟网卡可以将自己的IP地址映射到云服务器上的IP地址。例如,如果你有一个名为"mycloudserver"的虚拟网卡,你可以在客户端上创建一个名为"mycloud_we
2023-10-26

云服务器如何做端口映射

云服务器端口映射端口映射允许从外部访问云服务器上的私有服务。通过将外部端口映射到内部端口,可通过公共IP访问服务,无需直接暴露内部网络。步骤:创建允许访问的防火墙规则映射外部端口到内部服务端口启用端口映射端口映射支持TCP和UDP协议,可增强远程访问、安全性和灵活性,但也存在延迟、复杂性和攻击风险。
云服务器如何做端口映射
2024-04-12

云服务器如何做端口映射

云服务器可以通过以下几种方式实现端口映射:1. 防火墙规则:通过设置防火墙规则,将外部端口映射到云服务器的内部端口。这可以在云服务提供商的管理控制台上进行配置,通常需要指定外部端口、内部端口和目标云服务器的 IP 地址。2. 路由器转发:如
2023-08-19

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录