本系列教程涉及独立容器联网,这些容器直接绑定到Docker主机的网络,没有网络隔离。 有关其他联网主题,请参见概述。
目录
本教程的目标是启动一个直接绑定到Docker主机上端口80的nginx
容器。 从网络的角度来看,这与nginx进程是直接在Docker主机而不是在容器中运行的隔离级别相同。 然而,从其他方面看,例如存储,进程命名空间和用户命名空间,nginx
进程与主机是隔离的。
先决条件
此过程要求端口80在Docker主机上可用。 要使Nginx侦听其他端口,请参阅nginx镜像的文档。
host
网络驱动程序仅在Linux主机上工作,Docker Desktop for Mac, Docker Desktop for Windows, 或者 Docker EE for Windows Server上不支持。
过程
- 创建并启动容器作为一个分离的进程。
--rm
选项表示在容器退出/停止后将其删除。-d
标记意味着启动分离的容器(在后台)。
docker run --rm -d --network host --name my_nginx nginx
通过浏览http://localhost:80/来访问Nginx。
使用以下命令检查您的网络堆栈:
- 检查所有网络接口,并确认未创建新的接口。
ip addr show
* 使用netstat
命令验证哪个进程绑定到端口80。 您需要使用sudo
,因为该进程归Docker后台程序用户所有,否则您将无法看到其名称或PID。sudo netstat -tulpn | grep :80
- 停止容器。 它将被自动删除,因为它是使用
--rm
选项启动的。
docker container stop my_nginx
其他网络教程
您已经完成了独立容器联网的教程,那么您可能需要运行以下其他网络教程: 独立网络教程 覆盖网络教程 Macvlan网络教程