使用主机网络联网
目录
本系列教程介绍如何将 直接连接到 Docker 主机的网络,无需网络隔离。对于其他 网络主题,请参阅概述。
目标
本教程的目标是启动一个直接绑定的容器
到 Docker 主机上的端口 80。从网络的角度来看,这是
与进程直接在
Docker 主机,而不是在容器中。但是,在所有其他方面,例如存储、
进程命名空间和用户命名空间,则进程与
主机。nginx
nginx
nginx
先决条件
此过程要求端口 80 在 Docker 主机上可用。要使 Nginx 监听到不同的端口,请参阅
nginx
镜像的文档网络驱动程序仅适用于 Linux 主机,但在 Docker Desktop 版本 4.29 上作为测试版功能提供 以及更高版本的 Mac、Windows 和 Linux。要启用此功能,请导航到 Settings (设置) 中的 Resources (资源) 选项卡,然后在 Network (网络) 下选择 Enable host networking(启用主机网络)。
host
程序
创建容器并将其作为分离的进程启动。该选项表示在容器退出/停止后将其删除。该标志表示启动容器分离(在后台)。
--rm
-d
$ docker run --rm -d --network host --name my_nginx nginx
通过浏览 http://localhost:80/ 访问 Nginx。
使用以下命令检查您的网络堆栈:
检查所有网络接口并验证是否未创建新接口。
$ ip addr show
使用命令验证哪个进程绑定到端口 80。你 需要使用,因为该进程归 Docker 守护程序用户所有 否则您将无法看到其名称或 PID。
netstat
sudo
$ sudo netstat -tulpn | grep :80
停止容器。它将在使用该选项启动时自动删除。
--rm
docker container stop my_nginx