Docker端口映射与容器互联怎么实现


本篇内容主要讲解“Docker端口映射与容器互联怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Docker端口映射与容器互联怎么实现”吧!1、端口映射实现访问容器1.从外部访问容器应用在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内部的网络应用和服务的。
当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-p或-p参数来指定端口映射。当使用-p(大写p)标记时,docker会随机映射一个端口到内部容器开放的网络端口(端口范围在linux系统使用的端口之外,一般都过万):通过docker ps可以看到nginx_1容器的80端口被映射到本机的32768端口上。访问宿主主机的32768端口就可以访问容器内的应用程序提供的web界面:同样,可以通过docker logs命令查看应用信息:-p(小写p)可以指定要映射的端口,并且在一个指定的端口上只可以绑定一个容器。支持的格式有:ip:hostport:containerport | ip::containerport | hostport:containerport 。2.映射所有接口地址使用hostport:containerport格式将本地的5000端口映射到容器的5000端口:此时默认会绑定本地所有接口上的所有地址。多次使用-p参数可以绑定多个端口:3.映射到指定地址的指定端口可以使用ip:hostport:containerport格式指定映射使用一个特定地址:4.映射到指定地址的任意端口使用ip::containerport格式绑定本机的任意端口到容器的指定端口:容器启动后,本机会随机自动分配一个未被占用的端口。5.查看映射端口配置使用docker port命令来查看当前映射的端口配置,也可以查看绑定的地址注意:容器有自己的内部网络和ip地址,使用docker inspect +容器id可以获取容器的具体信息。2、互联机制实现便捷访问容器的互联是一种让多个容器中应用进行快速交互的方式,它会在源和接收容器之间建立连接关系,接收容器可以通过容器名快速访问到源容器,而不用指定具体的ip地址。1.自定义容器命名连接系统依据容器的名称来执行。因此,首先要给容器定义一个简单好记的名字。在容器创建的时候,系统会随机创建一个容器名,但是并没有特殊的意义也不便于记忆,所有自定义容器名有一下亮点好处:1.自定义的命名比较好记,比如一个web应用容器,就可以起名web,既方便记忆也方便理解容器的作用;
2.当要连接其他容器时,即使重启,也可以使用自定义的容器名,,比如web容器连接到db容器。使用–name参数可以为容器自定义命名:通过docker ps或者docker ps -a可以查看到容器的自定义名字,利用docker inspect也可以获取到容器自定义名字:注意:容器的名称是唯一的。如果已经命名了一个web的容器,当再次使用web这个命名的时候会报错,如果一定要使用,需要先用docker rm删除之前创建的web容器。在执行docker run的时候如果添加–rm参数,则容器终止后会立刻删除。–rm参数和-d参数不能同 香港云主机时使用。2、容器互联使用–link参数可以让容器之间安全地进行交互。创建一个数据库容器:创建一个web容器并将它连接到db容器:此时web容器已经和db容器建立互联关系:–link参数的格式为:–link name:alias,其中name是要连接的容器名称,alias是这个连接的别名。docker相当于在两个互联的容器之间创建了一个虚拟通道,而不用映射它们的端口到宿主机上。在启动db容器的时候并没有使用-p或者-p参数,从而避免了暴露数据库服务端口到外部网络上。docker通过两种方式为容器公开连接信息:1.更新环境变量;
2.更新/etc/hosts文件。使用env命令来查看web容器的环境变量:其中db_开头的环境变量是提供web容器连接db容器使用的,前缀采用大写的连接别名。除了环境变量之外,docker还添加host信息到父容器的/etc/hosts文件。这里有两个hosts信息,第一个是db容器的ip和容器名+容器id,第二个是web自己的ip和容器id,web容器中hosts文件采用容器的id作为主机名。互联的容器之间是可以ping通的。到此,相信大家对“Docker端口映射与容器互联怎么实现”有了更深的了解,不妨来实际操作一番吧!这里是开发云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: jsonarray的概念是什么

这篇文章主要讲 香港云主机解了“jsonarray的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jsonarray的概念是什么”吧!1、jsonarray描述是一个有序的值序列。外部文本形式是一个用…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/03 22:05
下一篇 07/03 22:05

相关推荐