当前位置: 首页 > news >正文

专做定制的网站wordpress 面包屑导航修改

专做定制的网站,wordpress 面包屑导航修改,程序开发用什么软件,网页特效经典300例启动容器时#xff0c;通过-p 宿主机端口:容器端口#xff0c;就可以通过访问宿主机端口访问到容器#xff0c;这种原理机制是啥#xff0c;有没有其它方式可以让宿主机和容器通信#xff0c;以及容器与容器之间如何通信。带着这几个问题开始学习Docker的网络知识。 文章…启动容器时通过-p 宿主机端口:容器端口就可以通过访问宿主机端口访问到容器这种原理机制是啥有没有其它方式可以让宿主机和容器通信以及容器与容器之间如何通信。带着这几个问题开始学习Docker的网络知识。 文章目录 容器通信必备网络知识Linux的network namespace网络命名空间veth虚拟以太网卡虚拟以太网桥 Docker容器默认三种基础网络模式bridge模式bridge模式通信机制bridge模式基础操作创建容器指定bridge模式查看容器的ip地址和网关信息查询所有bridge模式下的容器 host网络模式host模式通信机制host模式基础操作创建容器指定host模式查看host网络模式下容器 none网络模式none模式通信机制none网络基础操作创建容器指定none网络模式查询none网络模式下的容器 Container网络模式Container模式通信机制Container模式基础操作容器启动时指定使用另一个容器的网络 自定义网络模式自定义网络机制Docker-自定义网络基础操作创建自定义网络创建容器指定自定义网络新增连接网络断开网络移除网络 总结 容器通信必备网络知识 Linux的network namespace网络命名空间 linux的内核namespacesj 它在Linux内核2.6版本引入作用是隔离Linux系统的设备以及IP地址、端口、路由表、防火墙规则等网络资源。因此每个网络namespace里都有自己的网络设备如IP地址、路由表、端口范围、/proc/net目录等 这么做的好处就是隔离直观的例子就是由于每个容器都有自己的虚拟网络设备并且容器里的进程可以放心地绑定在端口上而不必担心冲突这就使得在一个主机上同时运行多个监听80端口的Web服务器变为可能,如下图 veth虚拟以太网卡 是虚拟以太网卡[Virtual Ethernet]缩写veth设备总是成对的因此我们称之为veth pair。veth pair一端发送的数据会在另外一端接收,是双向通道。根据这一特性veth pair常被用于跨network namespace之间的通信即分别将veth pair的两端放在不同的namespace里 虚拟以太网桥 两个network namespac可以通过veth pair连接但是要做到两个以上network namespace相互连接veth pair就显得捉襟见肘。它正如字面意思描述的那样有牵线搭桥的意思用于连接网络设备它是一台虚拟的网络交换机任意物理设备比如veth0和虚拟设备(比如降到的veth pair)都可以连接到这个设备上。 Docker容器默认三种基础网络模式 安装Docker以后会默认创建三种网络可以通过sudo docker network ls查看 applebogon ~ % docker network lsNETWORK ID NAME DRIVER SCOPE c38043cc6113 bridge bridge local b15c29da9f0f host host local c22f88bafff0 none null local接下来我们讲解这三种网络的基本使用和原理 bridge模式 bridge模式通信机制 在该模式中Docker 守护进程创建了一个虚拟以太网桥 docker0新建的容器的虚拟以太网卡veth0配对的pair接口自动桥接到这个docker0网桥上附加在其上的任何网卡之间都能自动转发数据包。 Bridge 桥接模式的实现步骤主要如下 Docker Daemon 利用 veth pair 技术在宿主机上创建一对对等虚拟网络接口设备假设为 veth0 和 veth1。而 veth pair 技术的特性可以保证无论哪一个 veth 接收到网络报文都会将报文传输给另一方Docker Daemon 将 veth0 附加到 Docker Daemon 创建的 docker0 网桥上。保证宿主机的网络报文可以发往 veth0Docker Daemon 将 veth1 添加到 Docker Container 所属的 namespace 下并被改名为 eth0。如此一来宿主机的网络报文若发往 veth0则立即会被 Container 的 eth0 接收实现宿主机到 Docker Container 网络的联通性同时也保证 Docker Container 单独使用 eth0实现容器网络环境的隔离性 未启动任何容器前先通过指令ip addr 查询出目前所有的网卡接口目前有三个网卡接口分别是 docker0虚拟以太网桥enX0表示宿主机物理网卡接口lo是本地回环地址有这个可以使用127.0.0.1连接本地 启动mysql容器 sudo docker run -di --name mysql01 -e MYSQL_ROOT_PASSWORDroot -d mysql宿主机上执行ip addr多了一个网卡接口veth3ff2d31这个就是mysql容器启动后docker通过linux的veth pair技术创建的成对的网卡接口宿主机的网卡接口是veth3ff2d31容器的网卡接口veth0。 登陆上容器上sudo docker exec -it mysql01 /bin/bash可以在容器/sys/class/net路径下看到网卡eth0lo可以忽略它是本地回环接口有它可以ping通127.0.0.1 其中27:veth3ff2d31if26其中27和26成对出现可以在目标容器中通过cat /sys/class/net/eth0/ifindex知道容器网卡的veth0的ifindex是26执行/sys/class/net/eth0/iflink知道网卡配对的一端ifindex是27 退出容器后在宿主机上通过cat /sys/class/net/veth3ff2d31/ifindex知道网卡veth3ff2d31的ifindex是27执行/sys/class/net/veth3ff2d31/iflink知道veth3ff2d31网卡配对的一端ifindex是26 bridge模式基础操作 创建容器指定bridge模式 关于 bridge 网络模式的使用只需要在创建容器时通过参数 --net bridge 或者 --network bridge 指定即可当然这也是创建容器默认使用的网络模式也就是说这个参数是可以省略的 # 1.启动mysql不添加--net bridge默认是bridge sudo docker run -di --name mysql01 -e MYSQL_ROOT_PASSWORDroot -d mysql# 2.启动mysql不添加--net bridge默认是bridge sudo docker run --net bridge -di --name mysql01 -e MYSQL_ROOT_PASSWORDroot -d mysql查看容器的ip地址和网关信息 对于每个容器的 IP 地址和 Gateway 信息我们可以通过 docker inspect 容器名称|ID 进行查看在 NetworkSettings 节点中可以看到详细信息。 查询所有bridge模式下的容器 通过 docker network inspect bridge 查看所有 bridge 网络模式下的容器在 Containers 节点中可以看到容器名称。 host网络模式 host模式通信机制 采用 host 网络模式的 Docker Container可以直接使用宿主机的 IP 地址与外界进行通信若宿主机的 eth0 是一个公有 IP那么容器也拥有这个公有 IP。同时容器内服务的端口也可以使用宿主机的端口无需额外进行 NAT 转换 host 网络模式可以让容器共享宿主机网络栈这样的好处是外部主机与容器直接通信但是容器的网络缺少隔离性 host模式基础操作 创建容器指定host模式 host 网络模式需要在创建容器时通过参数 --net host 或者 --network host 指定例如启动mysql使用host模式 # 启动mysql容器 sudo docker run --name mysql02 -it --net host -e MYSQL_ROOT_PASSWORDroot -d mysql然后宿主机通过ip addr查看信息如下只有lo,exX0,docker0没有新建任何网卡接口 查看host网络模式下容器 可以通过 docker network inspect host查看所有 host 网络模式下的容器在 Containers 节点中可以看到容器名称 none网络模式 none模式通信机制 none 网络模式是指禁用网络功能只有 lo 接口( local 的简写)代表 127.0.0.1即 localhost 本地环回接口。 none 网络模式即不为 Docker Container 创建任何的网络环境容器内部就只能使用 lo 网络设备不会再有其他的网络资源。可以说 none 模式为 Docke Container 做了极少的网络设定但是俗话说得好“少即是多”在没有网络配置的情况下作为 Docker 开发者才能在这基础做其他无限多可能的网络定制开发。这也恰巧体现了 Docker 设计理念的开放。 none网络基础操作 创建容器指定none网络模式 在创建容器时通过参数 --net none 或者 --network none 指定 启动mysql容器指定none网络模式 sudo docker run --name mysql03 -it --net none -e MYSQL_ROOT_PASSWORDroot -d mysql查询none网络模式下的容器 我们可以通过 docker network inspect none 查看所有 none 网络模式下的容器在 Containers 节点中可以看到容器名称 Container网络模式 Container模式通信机制 Container 网络模式是 Docker 中一种较为特别的网络的模式。在创建容器时通过参数--net container:已运行的容器名称|ID或者 --network container:已运行的容器名称|ID 指定 处于这个模式下的 Docker 容器会共享一个网络栈这样两个容器之间可以使用 localhost 高效快速通信 Container 网络模式即新创建的容器不会创建自己的网卡配置自己的 IP而是和一个指定的容器共享 IP、端口范围等。同样两个容器除了网络方面相同之外其他的如文件系统、进程列表等还是隔离的。 Container模式基础操作 容器启动时指定使用另一个容器的网络 自定义网络模式 自定义网络机制 虽然 Docker 提供的默认网络使用比较简单但是为了保证各容器中应用的安全性在实际开发中更推荐使用自定义的网络进行容器管理以及启用容器名称到 IP 地址的自动 DNS 解析 从 Docker 1.10 版本开始docker daemon 实现了一个内嵌的 DNS server使容器可以直接通过容器名称通信。方法很简单只要在创建容器时使用 --name 为容器命名即可。 但是使用 Docker DNS 有个限制只能在user-defined网络中使用。也就是说默认的 bridge 网络是无法使用 DNS 的所以我们就需要自定义网络 简而言之就是自定义网络是基于前文提到的bridgenonehost模式创建并且拥有了通过网络名称通信的特征 Docker-自定义网络基础操作 创建自定义网络 通过 docker network create 命令可以创建自定义网络模式 docker network create 命令使用详情发现可以通过 --driver 指定网络模式网络模式只有三种是前文提到的bridge,host,none模式默认是 bridge 网络模式提示如下 创建一个基于 bridge 网络模式的自定义网络模式 cyl_network完整命令如下 sudo docker network create cyl_network通过 docker network ls 查看网络模式 创建容器指定自定义网络 sudo docker run -di --name bbox05 --net custom_network busybox通过 docker inspect 容器名称|ID 查看容器的网络信息在 NetworkSettings 节点中可以看到详细信息 新增连接网络 通过 docker network connect 网络名称 容器名称 为容器连接新的网络模式。 执行以下指令可以为容器bbox05新增bridge网络 sudo docker network connect bridge bbox05断开网络 通过docker network disconnect 网络名称 容器名称 命令断开网络。 sudo docker network disconnect cyl_network bbox05通过 docker inspect 容器名称|ID 再次查看容器的网络信息发现只剩下默认的 bridge模式 移除网络 可以通过 docker network rm 网络名称 命令移除自定义网络模式网络模式移除成功会返回网络模式名称。 sudo docker network rm cyl_network再次执行sudo docker network ls发现cyl_network已经移除 注意如果通过某个自定义网络模式创建了容器则该网络模式无法删除。 总结 上文讲解了docker默认的三种网络模式bridge、host、none的通信机制和基本操作再此基础上又延伸了container网络模式和自定义网络这五种网络模式原理总结如下 网络模式原理隔离性bridge为每一个容器分配、设置 IP 等并将容器连接到一个 docker0 虚拟网桥默认为该模式高host容器将不会虚拟出自己的网卡配置自己的 IP 等而是使用宿主机的 IP 和端口低none容器有独立的 Network namespace但并没有对其进行任何网络设置如分配 veth pair 和网桥连接IP 等无网络container新创建的容器不会创建自己的网卡和配置自己的 IP而是和一个指定的容器共享 IP、端口范围等跟随指定容器的网络模式而定若指定容器是bridge则高host则低自定义网络只有自定义网络才启用容器名称到 IP 地址的自动 DNS 解析才能通过容器名称进行网络通信根据指定的模式而定
http://www.hkea.cn/news/14467094/

相关文章:

  • 网站建设情况存在问题广州番禺人才网
  • 西安模板建站网站途牛旅游线路网站建设分析
  • 设计网站物理结构怎么做厦门建设局领导
  • 网站需备案php源码项目门户网站开发
  • 哪个网站有适合小学生做的题wordpress 制作侧边栏
  • 江苏商城网站制作公司教育 网站模板
  • 建设城市2的游戏在哪个网站鞍山网站制作推广
  • 广州互帮物流哪家公司做的网站石龙网站仿做
  • 许昌市住房和城乡建设局门户网站前十名少儿编程机构
  • 做区位图的网站wordpress文章关联
  • 秦皇岛市网站建设伊犁建设网站
  • 常熟做网站的公司海外平台推广方法
  • 热搜榜排名前十seo顾问
  • 宜宾网站建设多少钱河南生产型企业网站建设
  • 重庆可作为推广的网站wordpress首页显示友链
  • 男士手表网站网站开发招聘简历模板
  • sae网站代备案wordpress增加文章目录
  • 网站建设公司广告语建设网站的项目策划书
  • 个人网站可以做百度推广么wordpress获取所有图片
  • 做满屏网站的尺寸六安城市网电话是多少
  • 交互做的好的中国网站大连网站建设蛇皮果
  • 网站建设和信息更新的通知山西省建设厅官网站
  • 网站推广优化的原因平面图设计软件
  • 爱站网排名常州网站推广优化
  • win10怎么删除2345网址导航seo企业优化顾问
  • 设计接单网站大全门户网站开发需求
  • 做企业网站的尺寸是多少安阳市城乡建设规划局网站
  • 想弄个网站天气网站建设
  • 做购物网站写数据库的流程外贸做编织袋常用网站
  • 简繁英3合1企业网站生成管理系统V1.6图片合成器在线制作