网站二级域名打不开,高端网站建设必须要满足哪些要求,网站标签化,小公司网站建设需要多少钱Docker 网络主要有以下两个作用#xff1a;
容器间的互联和通信以及端口映射容器IP变动时候可以通过服务名直接网络通信而不受到影响
只要是处于同一个Docker 网络下的容器就可以使用服务名直接访问#xff0c;而无需担心重启。
docker容器网络模式
bridge网络模式#…Docker 网络主要有以下两个作用
容器间的互联和通信以及端口映射容器IP变动时候可以通过服务名直接网络通信而不受到影响
只要是处于同一个Docker 网络下的容器就可以使用服务名直接访问而无需担心重启。
docker容器网络模式
bridge网络模式使得容器与容器之间可以相互互通
bridge网络模式是基于NAT模式下的网络通信方式。此驱动为Docker的默认设置驱动使用这个驱动的时候将创建出来的Docker容器连接到Docker网桥上。作为最常规的模式bridge模式已经可以满足Docker容器最基本的使用需求了。然而其与外界通信使用NAT增加了通信的复杂性在复杂场景下使用会有诸多限制。
host网络模式让容器程序可以使用主机网络
容器内的网络并不是希望永远跟主机是隔离的有些基础业务需要创建或更新主机的网络配置我们的程序必须以主机网络模式运行才能够修改主机网络这时候就需要用到 Docker 的 host 主机网络模式。因此可以认为host驱动适用于对于容器集群规模不大的场景。
none网络模式不得使用任务的网络
none 网络模式即不为 Docker Container 创建任何的网络环境容器内部就只能使用 loopback 网络设备不会再有其他的网络资源。可以说 none 模式为 Docke Container 做了极少的网络设定但是俗话说得好“少即是多”在没有网络配置的情况下作为 Docker 开发者才能在这基础做其他无限多可能的网络定制开发。这也恰巧体现了 Docker 设计理念的开放。
container网络模式将两个容器放到统一网络空间中可以直接通过localhost访问
container网络模式允许一个容器共享另一个容器的网络命名空间。当两个容器需要共享网络但其他资源仍然需要隔离时就可以使用 container 网络模式例如我们开发了一个 http 服务但又想使用 nginx 的一些特性让 nginx 代理外部的请求然后转发给自己的业务这时我们使用 container 网络模式将自己开发的服务和 nginx 服务部署到同一个网络命名空间中。container 网络模式是 Docker 中一种较为特别的网络的模式,处于这个模式下的 Docker 容器会共享一个网络栈这样两个容器之间可以使用 localhost 高效快速通信。
docker容器网络命令
创建网络
参数说明 --driver驱动程序类型 --gateway主子网的IPV4和IPV6的网关 --subnet代表网段的CIDR格式的子网 mynet自定义网络名称 不指定任何选项的时候默认的–driver(网络模式)也是bridge(桥接)但是gateway和subnet会自动生成。
docker network create 网络名称
docker network create -d bridge mynetwork
docker network create --driverbridge --gateway192.168.137.1 --subnet192.168.137.0/16 mynet
查看查看网络列表
docker network ls
查询网络的模型详细信息
docker network inspect 网络名称 网络连接
docker network connect 网络名称 容器名称 网络断开
docker network disconnect 网络名称 容器名称
网络删除
docker network rm 网络名称
删除所有不再使用的网络
docker network prune
创建并运行容器时指定网络
docker run --name containerName -p 80:80 -d --network my_network nginxDocker 安装时自动在host上创建了如下3个网络 # docker network ls NETWORK ID NAME DRIVER SCOPE ff11ffdbd211 bridge bridge local a80155c5275d host host local b67166d3dfba none null local 使用示例
1、创建容器时挂载网络
#创建一个桥接类型的网络
docker network create --driverbridge --gateway192.168.137.1 --subnet192.168.137.0/16 myNet1#创建并运行容器时指定网络
docker run --name containerName -p 80:80 -d --network myNet1 myNginx#不想用时可以断开网络
docker network disconnect myNet1 myNginx2、把已存在的容器连接到新网络
#创建一个桥接类型的网络
docker network create --driverbridge --gateway192.168.137.1 --subnet192.168.137.0/16 myNet2#为容器连接新的网络
docker network connect myNet2 myNginx#不想用时可以断开网络
docker network disconnect myNet2 myNginx
docker-compose给容器挂载网络
使用docker-compose up -d命令编排一组容器时会默认创建一个网络并且这组容器全部都会加入到网络当中容器之间可以直接使用服务名去通信。
如果想要指定网络可以参考如下配置
networks:mynet:driver: bridgeipam:config:- subnet: 192.168.0.101/16gateway: 192.168.0.100配置好网络后在每个服务下可以指定使用的网络
version: 3
services:nginx:image: nginx:alpinecontainer_name: nginx-devenvironment:- TZAsia/Shanghaiports:- 80:80volumes:- /usr/local/docker/workspace/nginx/html:/usr/share/nginx/html- /usr/local/docker/workspace/nginx/conf/nginx.conf:/etc/nginx/conf.d/default.confnetworks:- mynetnetworks:mynet:driver: bridgeipam:config:- subnet: 192.168.0.101/16gateway: 192.168.0.100这样容器编排时所有容器都会加入到mynet这个自定义网络中。