zoukankan      html  css  js  c++  java
  • docker从零开始网络(四 ) host网络

    使用主机网络

    如果host对容器使用网络驱动程序,则该容器的网络堆栈不会与Docker主机隔离。例如,如果您运行绑定到端口80 host的容器并使用网络,则容器的应用程序将在主机IP地址的端口80上可用。

    主机网络驱动程序仅适用于Linux主机,并且不支持Docker for Mac,Docker for Windows或Docker EE for Windows Server。

    在Docker 17.06及更高版本中,您还可以host通过传递--network hostdocker container create命令将网络用于群组服务在这种情况下,控制流量(与管理群集和服务相关的流量)仍然通过覆盖网络发送,

    但各个群集服务容器使用Docker守护程序的主机网络和端口发送数据。这会产生一些额外的限制。例如,如果服务容器绑定到端口80,则只有一个服务容器可以在给定的swarm节点上运行。

    如果您的容器或服务未发布端口,则主机网络无效。

    使用主机网络进行联网

    本系列教程介绍了直接绑定到Docker主机网络的网络独立容器,没有网络隔离。有关其他网络主题,请参阅概述

    目标

    本教程的目标是启动一个nginx的容器直接绑定到Docker主机上的80端口 从网络的角度来看,这是相同的隔离级别,就好像nginx进程直接在Docker主机上而不是在容器中运行一样。但是,在所有其他方式(例如存储,进程命名空间和用户命名空间)中,nginx进程与主机隔离。

    先决条件

    • 此过程要求端口80在Docker主机上可用。要使Nginx侦听其他端口,请参阅图像的 文档nginx

    • host网络驱动程序仅适用于Linux主机和Windows,或Windows Server泊坞EE不支持多克的Mac,码头工人。

    程序

    1. 创建并启动容器作为分离进程。--rm选项意味着一旦退出/停止就移除容器。-d标志表示启动容器分离(在后台)。

      

    [root@docker11 ~]# docker run --rm -d --network host --name my_nginx nginx
    1. 通过浏览到http:// localhost:80 /来访问Nginx 。 因为docker容器与主机网络是共享的,所以可以直接用宿主机的ip加80端口直接访问。

      

      

      3.使用以下命令检查网络堆栈:

    • 检查所有网络接口并验证是否未创建新接口。  

    ip addr show

      使用该netstat命令验证哪个进程绑定到端口80 您需要使用,sudo因为该进程由Docker守护程序用户拥有,否则您将无法看到其名称或PID。

     

      4.停止容器。它将在使用该--rm选项启动时自动删除

    [root@docker11 ~]# docker stop my_nginx 
    my_nginx
  • 相关阅读:
    深入解析 float
    解决 css 浮动后 父元素高度失效问题
    高性能 Socket 组件 HP-Socket v3.2.1-RC1 公布
    基于lucene.net 和ICTCLAS2014的站内搜索的实现1
    史上最简单的个人移动APP开发入门--jQuery Mobile版跨平台APP开发
    【OpenCV新手教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放
    栈模拟队列 队列模拟栈
    状态机的两种写法
    Hadoop-2.2.0中文文档—— MapReduce 下一代--容量调度器
    OpenGLES 与 WebGL 中顶点属性的组织格式的误解
  • 原文地址:https://www.cnblogs.com/benjamin77/p/9507549.html
Copyright © 2011-2022 走看看