Docker网络教程(二)host 网络教程

使用 host 网络的联网

本系列的教程涉及直接绑定在 Docker 宿主机网络上而不隔离网络的独立容器的联网问题。如果想了解更多 Docker 网络的理论知识,参考概述

目的

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

先决条件

  • 这个过程要求Docker主机上的80端口是可用的。要让Nginx监听一个不同的端口,请看  nginx 镜像的文档

  •  host 网络驱动只适用于Linux主机,不支持Docker Desktop for Mac、Docker Desktop for Windows或Docker EE for Windows Server。

步骤

  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 deamon 用户拥有的,不用 sudo 你将无法看到它的名字或PID。

      $ sudo netstat -tulpn | grep :80
      
  4. 停止容器。由于用了 --rm 选项,因此它会被自动删除掉。

    docker container stop my_nginx
    

其他的网络教程

现在你已经完成了独立容器的网络教程,你可能想跑一下其他的:

猜你喜欢

转载自blog.csdn.net/weixin_42445065/article/details/131090887