使用主机网络联网

预计阅读时间:2分钟

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

目标

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

先决条件

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

  • host网络驱动程序仅适用于Linux主机,而Mac的Docker桌面,Windows的Docker桌面或Windows Server的Docker EE不支持该网络驱动程序。

程序

  1. 创建并启动容器,作为一个独立的过程。该--rm选项意味着一旦容器退出/停止就将其移除。该-d标志意味着要启动分离的容器(在后台)。

    docker run --rm -d --network host --name my_nginx nginx
    
  2. 通过浏览到http:// localhost:80 /来访问Nginx 。

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

    • 检查所有网络接口,并确认未创建新的网络接口。

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

      sudo netstat -tulpn | grep :80
      
  4. 停止容器。使用--rm选项启动时,它将自动删除。

    docker container stop my_nginx
    

其他网络教程

既然您已经完成了独立容器的网络教程,那么您可能需要运行以下其他网络教程:

网络主机独立