首页 > 其他分享 >Docker网络与存储

Docker网络与存储

时间:2024-02-05 17:12:15浏览次数:26  
标签:容器 存储 主机 网络 挂载 Docker docker

网络:

bridge模式: 当Docker进程启动后,会在主机上创建一个名为docker0的虚拟网桥, 主机上启动的docker容器会连接到这个虚拟网桥上.

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

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

host:如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的NetWork Namespace, 而是和宿主机公用一个NetWork Namespace. 容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP与端口.但是,容器的其它方面,入文件系统,进程列表等还是和宿主机隔离的.

container:新创建的容器与已经存在的一个容器共享一个Network Namespace,而不适合宿主机共享. 

none: 使用None模式, Docker容器拥有自己的Network Namespace, 需要我们自己为Docker容器添加网卡, 配置IP等.

 

存储:

1、镜像如何存储:

查看镜像的分层:
docker history image_id
查看镜像怎么存储的:
docker image inspect image_id

LowerDir :底层目录; diw(只是存储不同);包含小型linux和装好的软件

MergedDir :合并目录;容器最终的完整工作目录全内容都在合并层;数据卷在容器层产生;所有的增删改都在容器层;

UpperDir :上层目录;

WorkDir :工作目录(临时层),pid;

docker底层的 storage driver完成了以下的目录组织结果;

image.png

2、Images and layers

Docker映像由一系列层组成。 每层代表图像的Dockerfile中的一条指令。 除最后一层外的每一层都是只读的。

3、Container and layers

容器和镜像之间的主要区别是可写顶层。

在容器中添加新数据或修改现有数据的所有写操作都存储在此可写层中。删除容器后,可写层也会被删除。 基础图像保持不变。 因为每个容器都有其自己的可写容

器层,并且所有更改都存储在该容器层中,所以多个容器可以共享对同一基础映像的访问,但具有自己的数据状态。

4、Copy On Write

写时复制是一种共享和复制文件的策略,可最大程度地提高效率。如果文件或目录位于镜像的较低层中,而另一层(包括可写层)需要对其进行读取访问,则它仅使

用现有文件。另一层第一次需要修改文件时(在构建镜像或运行容器时),将文件复制到该层并进行修改。 这样可以将I / O和每个后续层的大小最小化。

5 容器的挂载

每一个容器里面的内容,支持三种挂载方式:

1)docker自动在外部创建文件夹自动挂载容器内部指定的文件夹内容【Dockerfile VOLUME指令的作用】

2)自己在外部创建文件夹,手动挂载

3)可以把数据挂载到内存中

Volumes(卷) :存储在主机文件系统的一部分中,该文件系统由Docker管理(在Linux上是“ / var /lib / docker / volumes /”)。 非Docker进程不应修改文件系统的这一部分。 卷是在Docker中持久存储数据的最佳方法。

Bind mounts(绑定挂载) 可以在任何地方存储在主机系统上。 它们甚至可能是重要的系统文件或目录。 Docker主机或Docker容器上的非Docker进程可以随时对其进行修改。

tmpfs mounts(临时挂载) 仅存储在主机系统的内存中,并且永远不会写入主机系统的文件系统。

 

标签:容器,存储,主机,网络,挂载,Docker,docker
From: https://www.cnblogs.com/mtjb1dd/p/18008473

相关文章

  • docker中调试java代码
    以shiro550为例子在vulhub/shiro/CVE-2016-4437启动环境docker-composeup-d然后看一下当前容器启动的命令是java-jar/shirodemo-1.0-SNAPSHOT.jar将容器内的jar包复制出来dockercp容器id:/shirodemo-1.0-SNAPSHOT.jar.然后ijidea新建项目,并且解压jar包到项......
  • 99%离线安装Chrome成功 没有网络也能安装
    原文地址:https://zhuanlan.zhihu.com/p/649737764谷歌浏览器Chrome,现代化的浏览器,使用它来上网是一个非常不错的选择。不过每次我想下载谷歌浏览器时,默认下载到的总是在线安装包,大小大约1~2MB,安装时电脑必须联网,每次都要从网络上下载:不知道你想不想要谷歌浏览器的本地安装包?......
  • Docker:Failed to copy files, no space left on device
    主页个人微信公众号:密码应用技术实战个人博客园首页:https://www.cnblogs.com/informatics/问题描述在Mac上进行docker构建时,偶尔会遇到以下问题Failedtocopyfiles:userspacecopyfailed:write/var/lib/docker/volumes/xxx/_data/xxx.dbf:nospaceleftondevice......
  • 汽车网络安全,防止汽车软件中的漏洞
    喜欢本篇文章的话记得点赞评论⭐收藏 汽车网络安全在汽车开发中至关重要,尤其是在汽车软件日益互联的情况下。在这篇博客中,我们将分享如何防止汽车网络安全漏洞。 Jumpto你喜欢的部分 为什么汽车网络安全很重要?主要汽车网络安全漏洞内存缓冲区问题代码注入顶级汽车......
  • Automotive IQ第14届年度汽车网络安全大会将于2024年在底特律举行
    在接受《AutomotiveIQ》独家采访时,福特汽车公司汽车和移动网络安全高级顾问DarrenShelcusky深入探讨了符合UNECER155/R156法规的关键因素,揭示了汽车行业满足这些严格法规的过程。从区分网络安全标准和法规到详细说明其对主机厂和更广泛的汽车网络安全领域的影响,Darren提供了综......
  • Docker容器第三课:企业级应用部署-实战
    一、docker容器化部署企业级应用1.1使用容器化部署企业级应用必要性1.有利于快速实现企业级应用部署2.有利于实现企业级应用恢复1.2Docker参考资料官方网站 http://hub.docker.com/二、docker安装部署系统环境:CentOS72.1安装前准备工作查看内核版本是否大于3.10[jack@TEST~]#u......
  • 网络安全书籍推荐大全(持续更新)
    Web安全书籍1 –WebHacking101中文版2 –KaliLinuxWeb渗透测试秘籍中文版3 –KaliLinuxburpsuite实战指南4 –渗透测试Node.js应用5 –Web安全资料和资源列表6KaliLinuxWeb渗透测试秘籍中文版信息安全等级保护欺骗的艺术HTTP权威指南Web安全渗......
  • docker安装
    前言  Docker是一个开源的应用容器引擎,是用Go语言实现的,Docker可以让开发者打包他们的应用和依赖包到轻量级、可移植的容器中,然后可以发布到任何Linux机器中。容器的优点很多,比如打包应用和依赖方便部署;做环境隔离,在做深度学习时就可以在容器中进行,安装各种包,不会污染到宿主机;......
  • Ubuntu下docker以及docker-compose安装
    Ubuntu下docker以及docker-compose安装Docker//使用官方脚本自动安装curl-fsSLhttps://test.docker.com-oget-docker.shsudoshget-docker.sh如果要使用Docker作为非root用户,则应考虑使用类似以下方式将用户添加到docker组:$sudousermod-aGdockeryour-user......
  • docker和k8s的区别
    docker是一个开源的应用容器引擎,开发者可以打包他们的应用以及依赖到一个容器中,发布到流行的liunx系统上,或者实现虚拟化。k8s是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等。一、虚拟化角度:传统的虚拟技术,在将物理硬件虚拟成多套硬件后,需要......