docker从零开始网络(四 ) host网络
使用主机网络
如果host
对容器使用网络驱动程序,则该容器的网络堆栈不会与Docker主机隔离。例如,如果您运行绑定到端口80 host
的容器并使用网络,则容器的应用程序将在主机IP地址的端口80上可用。
主机网络驱动程序仅适用于Linux主机,并且不支持Docker for Mac,Docker for Windows或Docker EE for Windows Server。
在Docker 17.06及更高版本中,您还可以host
通过传递--network host
给docker container create
命令将网络用于群组服务。在这种情况下,控制流量(与管理群集和服务相关的流量)仍然通过覆盖网络发送,
但各个群集服务容器使用Docker守护程序的主机网络和端口发送数据。这会产生一些额外的限制。例如,如果服务容器绑定到端口80,则只有一个服务容器可以在给定的swarm节点上运行。
如果您的容器或服务未发布端口,则主机网络无效。
使用主机网络进行联网
本系列教程介绍了直接绑定到Docker主机网络的网络独立容器,没有网络隔离。有关其他网络主题,请参阅概述。
目标
本教程的目标是启动一个nginx的容器
直接绑定到Docker主机上的80端口 。从网络的角度来看,这是相同的隔离级别,就好像nginx
进程直接在Docker主机上而不是在容器中运行一样。但是,在所有其他方式(例如存储,进程命名空间和用户命名空间)中,nginx
进程与主机隔离。
先决条件
-
在
host
网络驱动程序仅适用于Linux主机和Windows,或Windows Server泊坞EE不支持多克的Mac,码头工人。
程序
-
创建并启动容器作为分离进程。该
--rm
选项意味着一旦退出/停止就移除容器。该-d
标志表示启动容器分离(在后台)。
[root@docker11 ~]# docker run --rm -d --network host --name my_nginx nginx
- 通过浏览到http:// localhost:80 /来访问Nginx 。 因为docker容器与主机网络是共享的,所以可以直接用宿主机的ip加80端口直接访问。
3.使用以下命令检查网络堆栈:
-
检查所有网络接口并验证是否未创建新接口。
ip addr show
使用该netstat
命令验证哪个进程绑定到端口80 。您需要使用,sudo
因为该进程由Docker守护程序用户拥有,否则您将无法看到其名称或PID。
4.停止容器。它将在使用该--rm
选项启动时自动删除。
[root@docker11 ~]# docker stop my_nginx
my_nginx
相关文章
- 远程调试docker 容器中的java
- Docker镜像操作
- [翻译] 理解Docker容器网络
- Centos7上安装docker
- docker网络配置方法总结
- [Docker] Separate application image from database migration
- docker 应用篇————docker 网络[十七]
- Docker 网络背后的原理探索
- Docker Dockerfile之镜像缓存
- Docker 初探Docker的网络模式之Container模式模式
- Rancher Docker容器管理CPU/内存/网络/IO监控面板
- 在Docker Swarm上部署Apache Storm:第1部分
- Docker DevOps实战: 一分钟搭建Hexo博客
- 踩坑 -如何进入 docker 容器
- Nexus 清理无用的 Docker 镜像
- Docker容器跨主机通信--overlay网络
- 制作小体积的docker镜像nginx案例—— 筑梦之路
- docker启动服务---------------kafka+zookeeper
- docker -v 和Dockerfile 中VOLUME 区别
- docker 的端口映射
- Docker----Docker自定义网络
- 6.Docker的网络模式
- Docker 容器内存:我的容器为什么被杀了?
- Docker NameSpace 对 进程 ID、主机名、用户 ID、文件名、网络和进程间通信等资源隔离
- Docker 网络
- 从docker容器时间问题探究到Namespace问题