通过
docker inspect
命令可以查看容器的详细信息,包括容器的 IP 地址和端口映射。使用方法如下:
docker inspect [容器名称或ID]
在返回的 JSON 数据中,可以找到和字段,分别获取容器的 IP 地址和端口映射信息。
另一种方法是使用命令,这个命令可以列出正在运行的容器,并显示容器的端口映射信息。使用方法如下:
在输出的表格中,可以找到列,其中显示容器的端口映射信息。
需要查看整个网络的信息,包括各个容器的 IP 地址,可以使用
docker network inspect
命令。使用方法如下:
docker network inspect [网络名称]
在返回的 JSON 数据中,可以找到各个容器的 IP 地址信息。
Docker 容器网络及其配置详解
Docker容器网络详解与配置Docker安装后默认提供三种网络类型,可通过docker network ls查看详细信息。 Docker使用Linux桥接,虚拟一个Docker网桥(docker0),启动容器时根据docker0的网段分配容器IP(Container-IP),同时docker0成为容器默认网关。 容器间通过Container-IP实现直接通信。 桥接模式(bridge模式)桥接模式下,Docker进程启动时创建docker0虚拟网桥,主机上启动的容器连接到docker0。 容器通过docker0网桥获得IP地址,docker0是容器默认网关。 主机创建一对veth设备连接到docker0,容器通过eth0网卡通信。 使用docker run -p配置端口映射实现端口转发。 桥接模式下容器间通信直接,网络配置简单。 容器模式容器模式下,新创建容器共享已存在的容器的Network Namespace,不独立创建网络资源。 两个容器共享IP、端口范围等,通过lo网卡通信,网络隔离但文件系统、进程隔离。 主机模式主机模式下,容器共享宿主机的Network Namespace,无独立网络配置。 容器使用宿主机IP、端口通信,网络性能好但共享宿主机资源,端口冲突风险高。 none模式none模式下,容器拥有独立Network Namespace,但不进行网络配置,需手动配置网络。 容器仅保留lo网卡,无法联网但能保证容器安全。 网络配置与操作Linux内核实现名称空间管理,使用ip netns命令操作Network Namespace。 通过ip netns命令创建、操作Network Namespace,如启用网卡、查看信息等。 使用veth对实现不同Network Namespace间通信,创建veth对连接Namespace,并配置IP启动。 四种模式配置桥接模式下,docker run -p为默认配置方式。 none模式下手动配置网络资源。 容器模式下容器共享IP等资源。 主机模式下容器使用宿主机资源。 常用操作查看容器主机名、手动指定DNS、开放容器端口、端口映射、防火墙规则生成与管理。
如何获取 docker 容器的 ip 地址
客户机获取DHCP服务器主要分为4个步骤租用请求: DHCP客户机初始化TCP/IP,通过UDP端口67向网络中发送一个DHCPDISCOVER广播包,请求租用IP地址。 该广播包中的源IP地址为0.0.0.0,目标IP地址为255.255.255.255;包中还包含客户机的MAC地址和计算机名。 租用提供: 任何接收到DHCPDISCOVER广播包并且能够提供IP地址的DHCP服务器,都会通过UDP端口68给客户机回应一个DHCPOFFER广播包,提供一个IP地址。 该广播包的源IP地址为DCHP服务器IP,目标IP地址为255.255.255.255;包中还包含提供的IP地址、子网掩码及租期等信息。 租用选择: 客户机从不止一台DHCP服务器接收到提供之后,会选择第一个收到的DHCPOFFER包,并向网络中广播一个DHCPREQUEST消息包,表明自己已经接受了一个DHCP服务器提供的IP地址。 该广播包中包含所接受的IP地址和服务器的IP地址。 所有其他的DHCP服务器撤消它们的提供以便将IP地址提供给下一次IP租用请求。 租用确认: 被客户机选择的DHCP服务器在收DHCPREQUEST广播后,会广播返回给客户机一个DHCPACK消息包,表明已经接受客户机的选择,并将这一IP地址的合法租用以及其他的配置信息都放入该广播包发给客户机。 客户机在收到DHCPACK包,会使用该广播包中的信息来配置自己的TCP/IP,则租用过程完成,客户机可以在网络中通信。 DHCP客户机在发出IP租用请求的DHCPDISCOVER广播包后,将花费1秒钟的时间等待DHCP服务器的回应,如果1秒钟没有服务器的回应,它会将这一广播包重新广播四次(以2,4,8和16秒为间隔,加上1~1000毫秒之间随机长度的时间)。 四次之后,如果仍未能收到服务器的回应,则运行Windows 2000的DHCP客户机将从169.254.0.0/16这个自动保留的私有IP地址(APIPA)中选用一个IP地址,而运行其他操作系统的DHCP客户机将无法获得IP地址。 DHCP客户机仍然每隔5分钟重新广播一次,如果收到某个服务器的回应,则继续IP租用过程。
云计算Docker网络使用
在容器中运行的网络应用,需要让外部可以访问这些应用,我们可以通过
参数来指定端口映射。
使用命令运行nginx,-P指令随机映射一个端口映射容器内部端口
我们使用 docker ps 或者docker container ls 可以看到,宿主机的端口被映射到了容器的80端口,此时通过访问宿主机的就可以访问nginx默认页面
语法格式:
OPTIONS注解:
首先我们先将我们之前运行的容器全部删除
我们可以使用docker link链接容器,避免容器重启ip地址变化的问题
格式如下:
我们进入mycentos2容器
查看容器的hosts,发现了别名webcentos的ip地址
ping mycentos1容器的ip别名webcentos,发现容器可以ping通
docker创建以后默认使用的是Linux的 桥连接 ,在宿主机上虚拟创建了一个容器 网桥 (docker0),使用 ip addr查看
Docker每启动一个容器就会根据 docker0 的网段分配给容器一个IP地址,这个网桥docker0是所有容器的默认网关。 因为宿主机内容器都使用网桥docker0,所以容器可以使用IP进行通信。
Docker就是很好的利用了Linux虚拟网络技术,在宿主机和容器内分别创建一个虚拟接口,实现他们彼此联通.
网络模式配置说明bridge模式--net=bridge 默认使用 ,在docke的默认网桥docker0上为容器创建网络none模式--net=none不配置网络,用于稍后进入容器,自行配置网络container模式--net=container:name/id容器可以和应一个容器共享network namespace,k8s的pod使用此模式hots模式--net=host容器和宿主机共享Network namespace用户自定义--net=createnet用户使用network相关指令创建网络
Docker的container模式是指,创建容器的时候,使用--net=container:name/id,指定创建的容器和已经有的容器共享一个Network Namespace。
docker网络的host模式容器和宿主机共享Network namespace
默认选择bridge模式,容器启动后通过网桥docker0获取ip地址
我们首先使用 docker network创建一个新的docker网络
-d指定docker的网络模型,有 bridge、overlay,然后overlay网络模型使用的是Swarm mode。
使用ping来证明mycentos6容器和mycentos5可以相互链接
同理在mycentos5可以和mycentos5相互链接