Docker核心技术(三)

网络管理

Docker 网络很重要,重要的,我们在上面学到的所有东西都依赖于网络才能工作。我们从两个方面来学习网络:端口映射和网络模式 为什么先学端口映射呢? 在一台主机上学习网络,学习端口映射最简单,避免过多干扰。

端口映射详解

默认情况下,容器和宿主机之间网络是隔离的,我们可以通过端口映射的方式,将容器中的端口,映射到宿主机的某个端口上。这样我们就可以通过宿主机的ip+port的方式来访问容器里的内容

Docker的端口映射

  1. 随机映射 -P(大写)
  2. 指定映射 -p 宿主机ip:宿主机端口:容器端口

注意: 生产场景一般不使用随机映射,但是随机映射的好处就是由docker分配,端口不会冲突, 不管哪种映射都会有所消耗,影响性能,因为涉及到映射的操作

随机映射实践

随机映射我们从两个方面来学习:

  1. 默认随机映射
  2. 指定主机随机映射

默认随机映射

#命令格式:
docker run -d -P [镜像名称] 
#命令效果: 
#先启动一个普通的nginx镜像 
$ docker run -d nginx 
#查看当前宿主机开放了哪些端口 
$ netstat -tnulp 

#启动一个默认随机映射的nginx镜像 
$ docker run -d -P nginx 
#查看当前宿主机开放了哪些端口 
$ netstat -tnulp 

注意: 宿主机的32768被映射到容器的80端口 -P 自动绑定所有对外提供服务的容器端口,映射的端口将会从没有
使用的端口池中自动随机选择,但是如果连续启动多个容器的话,则下一个容器的端口默认是当前容器占用端口号+1,端口一般都是从32768开始分配映射。

指定主机随机映射

#命令格式 
    :~$ docker run -d -p [宿主机ip]::[容器端口] --name [容器名称][镜像名称]
#命令效果 
    :~$ docker run -d -p 192.168.8.14::80 --name nginx-1 nginx 
#检查效果 
    :~$ docker ps 
    
#随机映射还可以这么写(省略ip,默认0.0.0.0,注意端口前是::)
    :~$ docker run -d -p ::80 --name nginx-1 nginx 

指定映射实践

指定端口映射我们从二个方面来讲:

  • 指定端口映射
  • 指定多端口映射

指定端口映射

#命令格式: 
docker run -d -p [宿主机ip]:[宿主机端口]:[容器端口] --name [容器名字][镜像名称] 
#注意: 
#如果不指定宿主机ip的话,默认使用 0.0.0.0, 
#命令实践: 
#现状我们在启动容器的时候,给容器指定一个访问的端口 1199 
docker run -d -p 192.168.8.14:1199:80 --name nginx-2 nginx 
#查看新容器ip 
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}} {{end}}' 0ad3acfbfb76 
#查看容器端口映射
docker ps 

多端口映射方法

#命令格式 
docker run -d -p [宿主机端口1]:[容器端口1] -p [宿主机端口2]:[容器端口2] --name [容器名 称][镜像名称] 
#开起多端口映射实践 
docker run -d -p 520:443 -p 6666:80 --name nginx-3 nginx 
#查看容器进程 
docker ps

网络管理基础

docker网络命令

#查看网络命令帮助 
:~$ docker network help 



connect Connect a container to a network 
#将一个容器连接到一个网络
create Create a network 
#创建一个网络 
disconnect Disconnect a container from a network 
#从网络断开一个容器 
inspect  Display detailed information on one or more networks
#在一个或多个网络上显示详细信息 
ls List networks 
#网络列表 
prune Remove all unused networks 
#删除所有未使用的网络 
rm Remove one or more networks 
#删除一个或多个网络。

经常使用的网络查看命令

#查看当前主机网络 
$ docker network ls 
NETWORK ID NAME DRIVER SCOPE 
#网络id #名称 #驱动 #范围 
c2dcffa83a29 bridge bridge local 
c4deefdaf53b host host local 
57942890c6d6 none null local
#查看bridge的网络内部信息 
:~$ docker network inspect bridge
查看容器详细信息
#命令格式: 
docker inspect [容器id] 
#命令效果: 
查看容器全部信息: 
:~$ docker inspect 930f29ccdf8a 
查看容器网络信息: 
:~$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}} {{end}}' 930f29ccdf8a
查看容器端口信息
#命令格式: 
docker port [容器id] 
#命令效果: 
:~$ docker port 930f29ccdf8a 

网络模式简介

从1.7.0版本开始,Docker正式把网络跟存储这两个部分的功能实现都以插件化的形式剥离出来,允许用户通过指令来选择不同的后端实现。这也就是Docker希望构建围绕着容器的强大生态系统的一些积极尝试。 剥离出来的独立网络项目叫做libnetwork,libnetwork中的网络模型(Container Networking Model ,CNM)十分简洁,可以让上层的大量应用容器最大程度上不去关心底层实现。

docker的常用的网络模式

==bridge模式==: 简单来说:就是穿马甲,打着宿主机的旗号,做自己的事情。 Docker的默认模式,它会在docker容器启动时候,自动配置好自己的网络信息,同一宿主机的所有容器都在一个网络下,彼此间可以通信。类似于我们vmware虚拟机的桥接模式。 利用宿主机的网卡进行通信,因为涉及到网络转换,所以会造成资源消耗,网络效率会低。


1.png

==host模式:== 简单来说,就是鸠占鹊巢,用着宿主机的东西,干自己的事情。容器使用宿主机的ip地址进行通信。特点:容器和宿主机共享网络


2.png

==container模式==: 新创建的容器间使用,使用已创建的容器网络,类似一个局域网。 特点:容器和容器共享网络


3.png

==none模式:== 这种模式最纯粹,不会帮你做任何网络的配置,可以最大限度的定制化。 不提供网络服务,容器启动
后无网络连接。


4.png

==overlay模式==: 容器彼此不再同一网络,而且能互相通行。


5.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,776评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,527评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,361评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,430评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,511评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,544评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,561评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,315评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,763评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,070评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,235评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,911评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,554评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,173评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,424评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,106评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,103评论 2 352

推荐阅读更多精彩内容