容器的网络设置

作者: dreamer_lk | 来源:发表于2018-01-08 10:43 被阅读24次

创建一个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可能会关联到别的容器上,这是个问题。

相关文章

  • 容器的网络设置

    创建一个docker容器,docker系统会自动为该容器分配一个ip地址,通常是172.17开头。 我们可以在主机...

  • Docker 部署Hadoop集群

    一、网络设置以及集群部署规划 二、Docker容器 拉取镜像 创建容器按照集群的架构,创建容器时需要设置固定IP,...

  • docker常用容器及容器网络建设

    俩个容器通过localhost互通,只需将第二个容器增加网络设置 --network=container:容器名 ...

  • docker 搭建测试用例管理平台TestLink

    部署数据库 容器网络 查看当前使用网络 运行数据库 -d:后台运行--name:设置别名-e:设置参数-e MAR...

  • docker容器设置固定IP

    需求 需要将容器的ip设置为固定ip docker的网络类型 docker默认的有三种网络类型,bridge、ho...

  • FlexBox布局属性笔记

    display: 表示为伸缩容器 参考属性: flex |设置为容器 inline-flex| 行内元素设置容器...

  • docker容器之间通讯-network

    docker为容器创建独立的网络环境,实现宿主和容器、容器之间的网络隔离,默认使用bridge模式的网络,实现容器...

  • 容器网络如何设置为主机模式

    1、docker run方式 直接加参数: --net=host 2、k8s yaml方式 在yaml文件中,sp...

  • 配置网络

    概述 容器网络是容器选择连接到其他容器、主机和外部网络的机制。容器的 runtime 提供了各种网络模式,每种模式...

  • css弹性盒知识总结

    弹性盒包括: 弹性容器 和 弹性子元素 弹性容器设置display:flex; 然后给弹性容器设置其他的属性 1....

网友评论

    本文标题:容器的网络设置

    本文链接:https://www.haomeiwen.com/subject/abgvnxtx.html