云计算Docker网络使用

如题所述

第1个回答  2022-08-07

在容器中运行的网络应用,需要让外部可以访问这些应用,我们可以通过

参数来指定端口映射。

使用命令运行nginx,-P指令随机映射一个端口映射容器内部端口

我们使用 docker ps 或者 docker container ls 可以看到,宿主机的49154端口被映射到了容器的80端口,此时通过访问宿主机的49154就可以访问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相互链接


相似回答