Docker骚操作五十六话之docker网络模式、数据卷、日志等

news/2024/7/7 6:38:54

文章目录

  • 一、四种网络模式
  • 二、网络实现原理
      • 3、HOST模式
      • 4、container模式
      • 5、none模式
      • 6、bridge模式
  • 三、数据卷
  • 四、数据卷容器
  • 五、日志
  • 六、Portainer可视化面板安装
  • 七、拷贝
  • 八、容器网络
  • 九、暴露端口
  • 十、隧道

一、四种网络模式

在这里插入图片描述

二、网络实现原理

1、docker使用linux桥接,在宿主机虚拟一个docker容器网桥,docker启动一个容器时会根据docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的Container-IP直接通信

2、Docker网桥是宿主机虚拟出来的,并不是真实存在的网络设备,外部网络是无法寻址到的,这也意味着外部网络无法通过直接Container-IP访问到容器。如果容器希望外部能够访问,可以通过映射容器端口到宿主主机(端口映射),即docker run创建容器时候通过 -p(小)或 -P(大) 参数来启用,访问容器的时候就通过[宿主机IP]:[容器端口]访问容器

3、HOST模式

3.1、如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace,容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。

3.2、使用host模式的容器可以直接使用宿主机的IP地址与外界通信,容器内部的服务端口也可以使用宿主机的端口,不需要进行NAT,host最大的优势就是网络性能比较好,但是docker host上已经使用的端口就不能再用了,网络的隔离性不好

4、container模式

4.1、创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围

4.2、这个模式指定新创建的容器和已经存在的一个容器共享一个 Network Namespace,而不是和宿主机共享。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过 lo 网卡设备通信

5、none模式

5.1、该模式关闭了容器的网络功能

5.2、使用none模式,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。也就是说,这个Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等

5.3、这种网络模式下容器只有lo回环网络,没有其他网卡。none模式可以在容器创建时通过–network=none来指定。这种类型的网络没有办法联网,封闭的网络能很好的保证容器的安全性

5.4、单机没网,安全性很高,可以安全的储存数据,不会被攻击

6、bridge模式

6.1、此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及iptables nat表配置与宿主之间的关联

6.2、当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中

6.3、从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。在主机上创建一对虚拟网卡veth pair设备,Docker将veth pair设备的一端放在新创建的容器中,并命名为eth0(容器的网卡),另一端放在主机中,以vethxxx这样类似的名字命名,并将这个网络设备加入到docker0网桥中。可以通过brctl show命令查看

6.4、bridge模式是docker的默 认网络模式,不写–net参数,就是bridge模式。使用docker run -p时,docker实际是在iptables做了DNAT规则,实现端口转发功能。可以使用iptables -t nat -vnL查看

三、数据卷

宿主机和容器是两个不同的名称空间,如果想进行连接 需要用ssh,exec和attch也类似于ssh这种方式登录,在企业中ssh这种登陆方式会比较危险,安全漏洞很大,尽量减少ssh这种,杜绝了频繁使用exec,因此使用数据卷的方式把容器内部的文件目录挂载到宿主机指定目录下进行修改,当容器里的文件频繁需要修改时不需要登陆进去,直接使用数据卷方式在宿主机指定的目录下进行修改即可。方便又安全。

原理:将容器内部的配置文件目录,挂载到宿主机指定目录下。

1、特性
1.1、数据卷可以在容器之间共享和重用
1.2、对数据卷的修改会立马生效
1.3、对数据卷的更新,不会影响到镜像
1.4、数据卷默认,会一直存在,即使容器删除

2、作用①修改配置文件例如:nginx

四、数据卷容器

应用场景:原理:将容器内部的配置文件目录,挂载到宿主机指定目录下
作用:
①修改配置文件 eg:nginx.conf /usr/local/nginx/conf/nginx.conf---->/container_nginx/conf/nginx.conf

②容器内部产生的日志,如何收集将容器内部存方日志文件的目录挂载到宿主机指定目录下/container_nginx/conf/nginx.conf

③传入变量,挂载到宿主机,在宿主机上添加变量内存,将变量放入共享目录,在容器中/etc/profile直接加载就可以export xxdir=/data/data1/xx.
在这里插入图片描述
在这里插入图片描述进入容器
在这里插入图片描述
宿主机
在这里插入图片描述

容器
在这里插入图片描述

宿主机
在这里插入图片描述
宿主机修改验证
在这里插入图片描述
容器验证
在这里插入图片描述

五、日志

在这里插入图片描述
在这里插入图片描述
语法:docker logs -f -t --tail 容器ID
在这里插入图片描述
停止容器进程
在这里插入图片描述

六、Portainer可视化面板安装

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、拷贝

Docker attach 容器id 也可以进入正在运行的容器
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

八、容器网络

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
自定义网络固定IP
在这里插入图片描述

九、暴露端口

-p 指定端口
在这里插入图片描述

在这里插入图片描述

-P 不指定端口
在这里插入图片描述

十、隧道

web2
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
web1
在这里插入图片描述

Web2
在这里插入图片描述

Web1
在这里插入图片描述
Web1 ping web2
在这里插入图片描述


http://www.niftyadmin.cn/n/1978410.html

相关文章

【Python】 Numpy极简寻路

【Numpy】 先感叹下最近挖坑越来越多了。。 最近想不自量力地挑战下ML甚至DL。然而我也知道对于我这种半路出家,大学数学也只学了两个学期,只学了点最基本的高数还都忘光了的渣滓来说,难度估计有点大。。总之尽力而为吧。在正式接触ML的算法之…

ASP.NET 安全认证(三)

“等了好久终于等到今天,写了好久终于就快完结,但是网友的反应却让我有一些的伤心。盼了好久终于盼到今天,忍了好久终于把此文撰写,那些受冷落的无奈早就无所谓,累也不说累”(歌词《今天》新演绎&#xff0…

Docker骚操作五十七话之docker镜像分层

文章目录一、docker镜像分层二、Docker容器创建方法1、基于dockerfile创建重点1.1、概述1.2、操作指令三、dockerfile分层原理2、涉及技术①bootfs (boot file system)内核空间②rootfs (boot file system) 内核空间总结1、容器之间相互通信的方式2、ADD和COPY区别3、CMD和entr…

Drill-on-YARN之源码解析

1. 概要 前面介绍了如何把Drill部署在YARN上,然后通过Drill-on-YARN客户端,你可以启动、停止、调整、清零命令操作Drill。但是在这么命令背后,到底是如何执行的呢,下面会对Drill-on-YARN的源码进行详细的解析,重点解析…

词条:RAID

RAID 的概述 RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。冗余磁盘阵列技术诞生于1987年,由美国加州大学伯克利分校提出。 RAID磁盘阵列(Redundant Array of Independent Disks) 简单地解释…

python之骚操作第一话走近python基础语法之变量及运算符篇

文章目录前言一、Python原理和运用python程序执行原理二、python基础语法1、变量和变量类型2、type()2.1、用type()获取数据类型3、数据类型3.1、什么是数据类型3.2、简单数值类型3.2.1、数值型3.2.2、非整型3.2.3、复杂数值类型4、标识符/关键字4.1、变量命名规则4.1.2、关键字…

深度有趣 | 26 Seq2Seq机器翻译

简介 介绍如何使用Sequence to Sequence Learning(Seq2Seq)实现神经机器翻译(Neural Machine Translation,NMT) 原理 之前我们通过序列标注模型实现了中文分词,序列标注属于Seq2Seq的一种 这次我们使用Seq2…

asp中request.ServerVariables列表程序

<% LanguageVBScript %> <% Option Explicit Dim Sv %> <HTML> <Head><title>显示服务器变量</title></Head> <BODY> <table colspan8 cellpadding5 border0> <tr> <td alignCENTER bgcolor"#8…