亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

容器的網絡設置

標簽:
容器

创建一个docker容器,docker系统会自动为该容器分配一个ip地址,通常是172.17开头。

我们可以在主机上用 docker inspect 命令 或者进入容器用ifconfig命令来查看容器的ip地址。

假设某个容器(假设容器的名称为myweb)被分配的地址是 172.17.0.2,该容器上启动了一个web服务,其端口号是80(注意这是容器中的端口号)。

这时我们用docker port命令可以查看该web服务在容器的端口对应到主机端口的信息,如:

docker port myweb

输出
80/tcp -> 0.0.0.0:32776

一、这时我们在docker主机上可通过如下方式访问容器的服务

1、方式一:

curl  http://localhost:32776

2、方式二:

假设主机的ip地址为192.168.142.138

curl  http://192.168.142.138:32776

这样docker主机局域网内的机器就可以通过主机的地址和绑定的ip来访问到docker容器上的服务了。不过这存在的问题是,需要将容器端口与主机上端口的映射关系变成固定的。否则一旦容器重启,绑定端口就会变了。

3、方式三:

假设容器的ip地址为 172.17.0.2

curl http://172.17.0.2:80

二、其它容器访问该容器的web服务

现在启动另外一个容器,在该容器中要访问myweb容器提供的web服务,可以用如下方式:

1、方式一:直接通过容器的ip地址访问

curl  http://172.17.0.2:80

说明:这么做是可以的,但问题是容器的ip地址是自动分配的,一旦提供该web服务的容器重启后,其ip可能发生变化。这就导致原来指定的ip有问题了。

2、方式二:通过主机地址和映射端口访问

curl http://192.168.142.138:32776

说明:这存在的问题是,端口的映射是自动的,容器一旦重启后会发生变化。

总结下,如果某个容器提供了对外的服务(如web服务),则统一的访问方式可以利用docker主机的ip地址和容器映射到主机上的端口来统一访问。

三、容器之间互联的另外一种方式

docker提供了一种机制,可以让一个容器和另一个容器很方便的连接起来。举例:

docker run --name test1 --link myweb:web -it ubuntu /bin/bash

上面命令创建了一个新的容器test1。 这里引入了一个新的标记 --link,其参数部分的myweb表示要连接的容器,web是要连接的容器的别名。

容器创建后,我们用 ping web命令发现能连接到myweb容器,这样因为用的不是ip地址,而是别名。这样即使myweb1容器重启后,上面创建的test1容器对其连接的代码或脚本也不用修改。

假设myweb容器提供了web服务,容器内的端口是80.

这时在test1容器内可以用如下方式访问:  curl  http://web:80

显然,这种方式的优点是不再指定ip地址,即使 myweb容器重启后ip地址变了也没关系。

注意:需要注意的是,如果myweb容器未启动,但有别的容器启动,test1容器利用别名web可能会关联到别的容器上,这是个问题。



作者:dreamer_lk
链接:https://www.jianshu.com/p/2e0417dc6f38


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
移動開發工程師
手記
粉絲
46
獲贊與收藏
145

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消