Docker单机网络实战
前言
Docker系列文章:
此篇是Docker系列的第八篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,加油!
基本命令

--net网络模式验证

bridge模式已在在网络初探的小节已经验证过了,这里就不再进行验证,接下来我们主要验证的是剩下的三总模式;
none
后台方式启动一个版本为最新的centos名字为centosworktest03网络模式为none的容器;
docker run -d -it --name centosworktest03 --net none centos:latest交互模式进入容器内部;
docker ps
docker exec -it 9a97610ae54a /bin/bash验证网络模型,当你使用yum install net-tools 安装命令的时候他会提示下载失败;

我们使用自带的ip addr来查看网路,我们会发现只有一个网络回环地址,使用none模式整个容器的网络是与其他网络隔离的;

host
后台方式启动一个版本为最新的centos名字为centosworktest04网络模式为host的容器;
docker run -d -it --name centosworktest04 --net host centos:latest交互模式进入容器内部;
docker ps
docker exec -it 2958410a53c5 /bin/baship addr查看网络模式,会发现与宿主机的网络模型是一致的;

container
后台方式启动一个版本为最新的centos名字为centosworktest05网络模式为container的容器采用centosworktest的网络模式;
docker run -d -it --name centosworktest05 --net container:centosworktest centos:latest交互模式进入容器内部;
docker exec -it 0a8ea7a39e1a /bin/baship addr查看网络模式,会发现与容器centosworktest的网络模式是一致的;

--link
容器在启动的IP地址是动态分配的,如何做到本地服务的发现?也就是说容器的IP变了,如何还能够调用到对应的服务,link可以通过名称调用来解决这个问题,但是不推荐使用link来解决该问题,这里的介绍只是来了解一下这个知识点的优缺点。
使用
简单介绍一下我们的案例,这里我们使用的容器名称为centosworktest03的容器,该容器的网络膜模型为none,只能在网络内部通信,我们使用--link启动一个centoslinktest的容器,来测试link的作用。这里我们因为centosworktest03容器一直在启动着,我们就直接启动centoslinktest做实验了。
后台方式启动一个版本为最新的centos名字为centoslinktest容器链接到centosworktest03这个容器;
docker run -d -it --name centoslinktest --link centosworktest02:centosworktest02 centos:latest检查容器centoslinktest与容器centosworktest02网络是否通畅;
docker exec -it centoslinktest ping centosworktest02
检查容器centosworktest02与容器centoslinktest的网络是否通畅;
docker exec -it centosworktest02 ping centoslinktest
查看centoslinktest的hosts文件,会发现在配置文件中存在了centosworktest02配置;

缺点
link的网络是单向的,也不具备传递的特性; link的配置是静态的,当容器的IP发生改变的话,配置的链接就失效了;
自定义网络
创建一个networktest的网络,使用--subnet指定容器分配网段,使用--gateway指定网关;
docker network create --driver bridge --subnet 192.168.1.0/24 --gateway 192.168.1.1 networktest查看网络列表;
docker network ls
查看具体配置docker network inspect networktest;

实战
后台方式分别启动名字叫customernetwork1和customernetwork2,网络模式为networktest的容器;
docker run -d -it --name customernetwork1 --net networktest centos:latest
docker run -d -it --name customernetwork2 --net networktest centos:latest测试customernetwork1和customernetwork2网络的连通性,发现网络之间是联通的;

测试customernetwork1与docker0网络中容器的连通性,发现两个网络是不通的,因为属于不同的网段;
docker exec -it e34051b19cfe ping 172.17.0.2
优点
自定义bridge网络与默认bridge网络docker0的优点如下:
自定义bridge具有更好的隔离性和容器间的互操作性,连接到同一个自定义bridge网络的容器会自动将所有端口相互暴露,并且无法连接到容器外的网络,使得容器化的应用能轻松地相互通信,并且与外部环境产生了良好的隔离性。
自定义bridge提供容器间通过名称自动发现的机制,也就是DNS解析,默认bridge网络上的容器只能通过IP地址互相访问,除非使用link命令,在用户定义桥接网络上,容器可以通过容器名称或别名来解析。
自定义bridge网络使用docker network create创建和配置。如果不同的应用程序组具有不同的网络要求,则可以在创建时分别配置每个用户定义的 bridge网络,增加了灵活性和可控性。
不同网段的容器如何通信

将容器centosworktest加入到自定义网络networktest中;
docker network connect networktest centosworktest测试centosworktest与customernetwork1的连通性,发现两个网络就是通畅的了;

结束
欢迎大家点点关注,点点赞!

Docker单机网络实战的更多相关文章
- docker单机网络类型
docker单机网络类型概述 Docker 安装时会自动在 host 上创建三种网络 分别为 bridge host none . 可用 docker network ls 命令查看 ...
- Docker单机网络下
前言 Docker系列文章: 此篇是Docker系列的第七篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,加油! 为什么要学习Docker Docker基本概念 Docker镜像基本原理 ...
- Docker单机网络上
前言 Docker系列文章: 此篇是Docker系列的第六篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,加油! 为什么要学习Docker Docker基本概念 Docker镜像基本原理 ...
- Docker 单机网络
Docker Network相关命令 root@ubuntu:~# docker network --help Usage: docker network COMMAND Manage network ...
- 理解Docker单机容器网络
在” 理解Docker单机容器网络 “一文中,还有一个Docker容器网络的功能尚未提及,那就是Docker容器的端口映射.即将容器的服务端口P’ 绑定到宿主机的端口P上,最终达到一种效果:外部程序通 ...
- [docker]docker自带的overlay网络实战
overlay网络实战 n3启动consul docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -b ...
- Docker小白到实战之Docker网络简单了解一下
前言 现在对于Docker容器的隔离性都有所了解了,但对容器IP地址的分配.容器间的访问等还是有点小疑问,如果容器的IP由于新启动导致变动,那又怎么才能保证原有业务不会被影响,这就和网络有挂钩了,接下 ...
- 云计算Docker全面项目实战(Maven+Jenkins、日志管理ELK、WordPress博客镜像)
2013年,云计算领域从此多了一个名词“Docker”.以轻量著称,更好的去解决应用打包和部署.之前我们一直在构建Iaas,但通过Iaas去实现统一功 能还是相当复杂得,并且维护复杂.将特殊性封装到 ...
- docker - kubernetes 网络(转)+ 架构图
1.host网络 连接到 host 网络的容器共享 Docker host 的网络栈,容器的网络配置与 host 完全一样.可以通过--network=host指定使用 host 网络.docker ...
随机推荐
- MindSpore整体架构介绍
MindSpore整体架构介绍 MindSpore框架架构总体分为MindSpore前端表示层.MindSpore计算图引擎和MindSpore后端运行时三层. MindSpore前端表示层(Mind ...
- ARM-CPU卷积网络的自动调谐
ARM-CPU卷积网络的自动调谐 为特定的ARM设备自动调谐对于获得最佳性能至关重要.这是一个关于如何调整整个卷积网络的资料. 以模板的形式编写了TVM中ARM CPU的操作实现.模板有许多可调旋钮( ...
- 计算机网络-ip分类
本网络--网络号全是0(0000 0000)的IP地址是保留地址,意思是"本网络". 环回地址--网络号是127(0111 1111)的IP地址也是保留地址,作为本地环回软件测试. ...
- 『言善信』Fiddler工具 — 13、Fiddler断点功能的使用详解
目录 1.Fiddler断点的应用 2.断点的分类 3.设置全局断点 (1)设置before Requests全局断点: (2)设置After Responses全局断点: 4.设置局部断点 (1)设 ...
- Linkerd 2.10(Step by Step)—4. 如何配置外部 Prometheus 实例
Linkerd 2.10 系列 快速上手 Linkerd v2 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traefik2 ...
- Redis不是只有get set那么简单
我以前还没接触Redis的时候,听到大数据组的小伙伴在讨论Redis,觉得这东西好高端,要是哪天我们组也可以使用下Redis就好了,好长一段时间后,我们项目中终于引入了Redis这个技术,我用了几下, ...
- CDQ分治(三维偏序集)
排序,三关键字 去重 归并排序+树状数组 #include<bits/stdc++.h> using namespace std; #define re register int cons ...
- Kubernetes之无头服务(headless)
己经看到如何使用服务来提供稳定的ip地址,从而允许客户端连接到支持服务的每个pod (或其他端点).到服务的每个连接都被转发到一个随机选择的pod上.但是如果客户端需要链接到所有的pod呢?如果后端的 ...
- 34、mysql数据库(介绍)
34.1.什么是数据库: 数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合.数据库中的数据按一定的数学模型组织. 描述和存储,具有较小的冗余,较高的数据独立性和易扩 ...
- 重新整理 .net core 实践篇————cookie 安全问题[三十八]
前言 简单整理一下cookie的跨站攻击,这个其实现在不常见,因为很多公司都明确声明不再用cookie存储重要信息,不过对于老站点还是有的. 正文 攻击原理: 这种攻击要达到3个条件: 用户访问了我们 ...