003-docker-单宿主机下的网络模式
docker利用namespaces和cgroups实现了应用隔离和资源控制,那么网络层优势如何实现的呢?是直接使用宿主机的网卡设备,还是独立创造出自己的网络设备?以及容器如何与外界通信,下面我们通过简单的说明以及示例,讨论下单机模式下docker的网络模式。
docker单机模式下,主要有四种网络模式,可以在创建容器的时候通过--network参数指定,这四种网络模式如下:
1、--network=bridge:网桥模式,这是docker默认的网络模式,这种模式下,容器创建的时候,会生成一个独立的网卡设备eth0,但是这个网卡设备无法直接同外部通信,需要通过网络设备对veth,将容器内的eth0与docker0网桥连通,然后docker0与宿主机的eth0通过转发绑定端口映射,实现容器内部同外部的通信。
容器创建语法:docker run -d --name container_name --network bridge -p xxx:xxx image_name,由于是默认的,所以不指定--network参数默认就是这种模式
示意图如下:
2、--network=container:这种模式,docker在创建容器的时候会指定使用已经存在的容器的网卡设备作为新建容器的网卡设备。这中模式需要注意,由于是多个容器共用同一个eth0,所以需要注意端口冲突问题。
容器创建语法:docker run -d --name container_name --network container:已经存在的容器名称 -p xxx:xxx image_name
示意图如下:
3、--network=host:这种模式,创建容器的时候,不会新建网卡设备,而是使用宿主机的网卡设备eth0,在这种模式下,容器直接使用宿主机的IP,同样要注意端口的冲突问题。
容器创建语法:docker run -d --name container_name --network host -p xxx:xxx image_name
示意图如下:
4、--network=none:这种模式下,容器无法与外界通信,只能使用容器内部的回环(127.0.0.1)在容器内部通信。
容器创建语法:docker run -d --name container_name --network none image_name
示意图如下:
以上是单机模式下docker的网络模式
相关文章
- Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
- docker开放2375端口,并添加安全传输层协议(TLS)和CA认证
- docker的四种网络模式_网络模式11b/g/n什么意思
- 不背锅运维:解读docker容器网络
- Docker 镜像安装配置 zsh
- docker离线安装及配置tab补全_Docker安装
- Docker 网络之redis集群搭建
- Docker 入门之网络
- 【Docker学习系列】Docker学习3-docker的run命令干了什么?docker为什么比虚拟机快?
- Docker 部署Redis哨兵
- Docker服务的拉取镜像命令(docker pull 镜像名称)
- Docker服务的删除本地镜像命令(docker rmi 镜像id)
- 快速搭建Fabric测试网络(Docker in Ubantu 18.04 TLS)
- Docker 添加容器SSH服务
- Docker部署MinIO
- 【Docker 系列】docker 学习 三
- 【Docker 系列】docker 学习 五,容器数据卷
- 【Docker 系列】docker 学习九,Compose 内容编排官网初步体验
- Windows系统安装Docker遇到error during connect: In the default daemon configuration on Windows, the docker
- Docker - docker-compose搭建ELK服务
- Docker正在淘汰开源组织,CTO硬刚开发者,网友:想赚钱可以,但沟通方式烂透了
- Docker网络基础知识
- springboot整合docker部署(两种构建Docker镜像方式)详解编程语言
- docker从Abp到MySQL,使用Docker快速部署(abpmysql)
- Docker 公司与阿里云达成合作,在中国提供 Docker Hub 服务
- docker实战-利用docker结合负载实现网络架构高可用
- 如何自定义容器网络?- 每天5分钟玩转 Docker 容器技术(33)
- 探索Docker安装Oracle数据库的秘密(docker安装oracle)