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

本教程详细介绍了如何在Docker中创建一个nginx容器,使其直接绑定到主机的80端口,实现网络层面的非隔离。通过--network=host参数,容器的网络与主机共享,同时保持其他资源的隔离。操作包括启动容器、检查网络接口、验证80端口的绑定进程以及如何停止和删除容器。
摘要由CSDN通过智能技术生成

使用 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
    

其他的网络教程

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值