飞天使-docker知识点3-docker数据卷

文章目录

        • pstree
        • docker 数据类型
          • 数据卷data volume
          • docker容器之间互联
          • 网络
        • 设置docker启动时候的内网ip段
          • docker registry 下载镜像

pstree
pstree -p 1  
pstree 是一个 Linux/Unix 命令,用于显示进程之间的父子关系。-p 选项会显示每个进程的进程 ID(PID)。而 1 参数则指定了要显示的起始进程的 PID,这里是 init 进程的 PID。因此,pstree -p 1 命令会显示 init 进程及其所有子孙进程的父子关系,以树形结构展示。每个进程都会显示其进程 ID 和父进程的进程 ID,方便查看进程之间的继承关系。需要注意的是,init 进程是系统中所有进程的祖先进程,它的 PID 通常是 1。pstree -p 1 命令可以帮助我们查看整个系统中的进程层次结构,并了解进程之间的组织和关系。
docker 数据类型
查看指定pid 容器的信息
docker inspect as"GraphDriver": {"Data": {"LowerDir": "/var/lib/docker/overlay2/e783e416b5df47c24aea91ea4372ace6a2c3bbfc94ba4783d9421fff42354e21-init/diff:/var/lib/docker/overlay2/nnooo2pre806vlq03f50mvw8y/diff:/var/lib/docker/overlay2/rnj2djgufta72oa9ni5ez3pwg/diff:/var/lib/docker/overlay2/jo2ag7rtj91qkido133hul817/diff:/var/lib/docker/overlay2/f4hzthzfuxulwzzj59jsm4vbv/diff:/var/lib/docker/overlay2/0ihwbu1oui6budb8e02hpl1zs/diff:/var/lib/docker/overlay2/qnk26pqe1l710m6t14uenyra9/diff:/var/lib/docker/overlay2/2c57547f862fdcd06aa0f4b926b08b6579258a03ca04eb18864d2c68741dcbbd/diff","MergedDir": "/var/lib/docker/overlay2/e783e416b5df47c24aea91ea4372ace6a2c3bbfc94ba4783d9421fff42354e21/merged","UpperDir": "/var/lib/docker/overlay2/e783e416b5df47c24aea91ea4372ace6a2c3bbfc94ba4783d9421fff42354e21/diff","WorkDir": "/var/lib/docker/overlay2/e783e416b5df47c24aea91ea4372ace6a2c3bbfc94ba4783d9421fff42354e21/work"这些字段是 Docker 的 OverlayFS 存储驱动在容器运行时使用的目录结构。下面是对每个字段的解释:LowerDir:存储镜像层的目录路径。它包含了多个目录,每个目录对应一个镜像层。层按顺序从左到右堆叠,最左边的是基础镜像层,右边的是上层镜像层。在容器中,这些层被合并并以只读方式挂载。
MergedDir:合并后的镜像层目录路径。该目录是 LowerDir 中的所有镜像层合并后的结果。容器中的文件系统通过将这个目录以可写方式挂载来实现对文件的修改和更新。
UpperDir:容器的可写层目录路径。该目录包含了对镜像层的修改,包括添加、删除和修改文件等操作。它会覆盖 MergedDir 中相同路径的文件,实现对文件的修改。
WorkDir:工作目录路径。该目录用于 OverlayFS 内部的工作操作,例如在容器中创建或修改文件时的临时操作。
这些字段组成了 Docker 容器的文件系统层次结构,通过 OverlayFS 技术实现了镜像的分层管理和容器的可写层隔离。这样可以节省存储空间,并且多个容器可以共享相同的基础镜像层,提高效率。
数据卷data volume
数据卷实际上就是宿主机上的目录或者是文件,可以被直接 mount 到容器当中
使用。
实际生产环境中,需要针对不同类型的服务、不同类型的数据存储要求做相应的
规划,最终保证服务的可扩展性、稳定性以及数据的安全性创建容器
docker run -d --name web1 -v /data/testapp/:/apps/tomcat/webapps/testapp -p 8080:8080 tomcat
docker run -d --name web2 -v /data/testapp/:/apps/tomcat/webapps/testapp -p 8082:8080 tomcat我们在 /data/testapp 目录下创建内容,
mkdir /data/testapp –p
echo "testapp page" > /data/testapp/index.html
#创建容器的时候指定参数-v,可以删除/var/lib/docker/containers/的容器数据
目录,但是不会删除数据卷的内容[root@light-test data[]# docker ps -a
CONTAINER ID   IMAGE                       COMMAND                   CREATED         STATUS         PORTS                                                  NAMES
8ea4a7939c1c   tomcat                      "catalina.sh run"         3 minutes ago   Up 3 minutes   0.0.0.0:8082->8080/tcp, :::8082->8080/tcp              web2
b7d9db2f962b   tomcat                      "catalina.sh run"         4 minutes ago   Up 4 minutes   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp              web1
9bd66b56259a   nginx:v1                    "/apps/nginx/sbin/ng…"   17 hours ago    Up 17 hours    443/tcp, 0.0.0.0:8888->80/tcp, :::8888->80/tcp         bold_varahamihira
bdf5d162155e   mysql                       "docker-entrypoint.s…"   6 weeks ago     Up 6 weeks     0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql
2a296128cadc   jenkins/jenkins:lts-jdk11   "/usr/bin/tini -- /u…"   4 months ago    Up 4 months    50000/tcp, 0.0.0.0:8001->8080/tcp, :::8001->8080/tcp   jenkins
[root@light-test data[]# docker rm -f web1
web1
[root@light-test data[]# docker rm -fv web2
web2
[root@light-test data[]# docker ps -a
CONTAINER ID   IMAGE                       COMMAND                   CREATED        STATUS        PORTS                                                  NAMES
9bd66b56259a   nginx:v1                    "/apps/nginx/sbin/ng…"   17 hours ago   Up 17 hours   443/tcp, 0.0.0.0:8888->80/tcp, :::8888->80/tcp         bold_varahamihira
bdf5d162155e   mysql                       "docker-entrypoint.s…"   6 weeks ago    Up 6 weeks    0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql
2a296128cadc   jenkins/jenkins:lts-jdk11   "/usr/bin/tini -- /u…"   4 months ago   Up 4 months   50000/tcp, 0.0.0.0:8001->8080/tcp, :::8001->8080/tcp   jenkins验证结果
[root@light-test data[]# cat testapp/index.html
testapp page
123数据卷特点
1、数据卷是宿主机的目录或者文件,并且可以在多个容器之间共同使用。
2、在宿主机对数据卷更改数据后会在所有容器里面会立即更新。
3、数据卷的数据可以持久保存,即使删除使用使用该容器卷的容器也不影响。
4、在容器里面的写入数据不会影响到镜像本身。1、日志输出
2、静态 web 页面
3、应用配置文件
4、多容器间目录或文件共享
docker容器之间互联
即在同一个宿主机上的容器之间可以通过自定义的容器名称相互访问,比如一
个业务前端静态页面是使用 nginx,动态页面使用的是 tomcat,由于容器在启动
的时候其内部 IP 地址是 DHCP 随机分配的,所以如果通过内部访问的话,自定
义名称是相对比较固定的,因此比较适用于此场景继续创建2个容器id
docker run -d --name web3 -v /data/testapp/:/apps/tomcat/webapps/testapp -p 8080:80 nginx:v1
docker run -d --name web4 -v /data/testapp/:/apps/tomcat/webapps/testapp -p 8082:80 nginx:v1第一种是修改容器里面的/etc/hosts,但是缺点是不易维护
第二种
docker run -d --name 新容器名称 --link 目标容器名称:自定义的名称 -p
本地端口:容器端口 镜像名称 shell 命[root@light-test data[]# docker run -d --name web3 --link web1:web1_link -p 8082:80 nginx:v1
dd24d64aa8836d33a982b39a734e419e8503053b972111d18ad02963e301e621
[root@light-test data[]# docker ^C
[root@light-test data[]# docker run -d --name web2 -p 8081:80 nginx:v1
[root@light-test data[]# docker run  -d --name web1 -p 8080:80 nginx:v1演示效果
[root@light-test data[]# docker exec -it web3 bash
[root@dd24d64aa883 /]# cat /etc/host
host.conf    hostname     hosts        hosts.allow  hosts.deny
[root@dd24d64aa883 /]# cat /etc/hosts
127.0.0.1	localhost
::1	localhost ip6-localhost ip6-loopback
fe00::0	ip6-localnet
ff00::0	ip6-mcastprefix
ff02::1	ip6-allnodes
ff02::2	ip6-allrouters
172.17.0.3	web1_link 3e9678eee190 web1
172.17.0.7	dd24d64aa883
[root@dd24d64aa883 /]# ping web1_link
PING web1_link (172.17.0.3) 56(84) bytes of data.
64 bytes from web1_link (172.17.0.3): icmp_seq=1 ttl=64 time=0.140 ms
64 bytes from web1_link (172.17.0.3): icmp_seq=2 ttl=64 time=0.097 ms
网络
[root@light-test data[]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
bf548f58947e   bridge    bridge    local
efacf764b5be   host      host      local
45a419ec5a2d   none      null      localBridge:#桥接,使用自定义 IP
Host:#不获取 IP 直接使用物理机 IP,并监听物理机 IP 监听端口
None:  一般创建好后没有配置网卡,路由,等,一般不会使用docker 的默认模式即不指定任何模式就是 bridge 模式,也是使用比较多的模式,
此模式创建的容器会为每一个容器分配自己的网络 IP 等信息,并将容器连接到
一个虚拟网桥与外界通信。docker network inspect bridge 跨主机互联是说 A 宿主机的容器可以访问 B 主机上的容器,但是前提是保证各
宿主机之间的网络是可以相互通信的,然后各容器才可以通过宿主机访问到对方
的容器,实现原理是在宿主机做一个网络路由就可以实现 A 宿主机的容器访问 B
主机的容器的目的,复杂的网络或者大型的网络可以使用 google 开源的 k8s 进
行互联
设置docker启动时候的内网ip段
保证两台机器是内网
其中一台docker的启动网段进行设置 #cat /lib/systemd/system/docker.service |grep bip
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --bip=10.10.0.1/24docker run -d --name web2 -p 8081:80 nginx:v1
docker registry 下载镜像
Docker Registry 作为 Docker 的核心组件之一负责镜像内容的存储与分发,客
户端的 docker pull 以及 push 命令都将直接与 registry 进行交互,最初版本的
registry 由 Python 实现,由于设计初期在安全性,性能以及 API 的设计上有着诸
多的缺陷,该版本在 0.9 之后停止了开发,由新的项目 distribution(新的 docker
register 被称为 Distribution)来重新设计并开发下一代 registry,新的项目由 go
语言开发,所有的 API,底层存储方式,系统架构都进行了全面的重新设计已解
决上一代 registry 中存在的问题,2016 年 4 月份 rgistry 2.0 正式发布,docker 1.6
版本开始支持 registry 2.0,而八月份随着 docker 1.8 发布,docker hub 正式启
用 2.1 版本 registry 全面替代之前版本 registry,新版 registry 对镜像存储格式
进行了重新设计并和旧版不兼容,docker 1.5和之前的版本无法读取2.0的镜像,
另外,Registry 2.4 版本之后支持了回收站机制,也就是可以删除镜像了,在 2.4
版本之前是无法支持删除镜像的,所以如果你要使用最好是大于 Registry 2.4 版
本的,目前最新版本为 2.7.x。
官方文档地址:https://docs.docker.com/registry/
官方 github 地址:https://github.com/docker/distribution

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/219993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构与算法:衡量算法好坏的指标——复杂度

1.复杂度 复杂度,用来分析算法执行过程中,所需要的资源。 时间复杂度是衡量所需要的时间。 空间复杂度,是衡量所需要的(内存)空间。 1.1 时间复杂度 特性 1.衡量算法执行所需时间 2.根据「常数操作」次数推定 3.一般以最大数据量N作为衡量…

js基础:函数、对象、WebAPIs-DOM

一、函数和对象 1、函数概述 🤖chatgpt:什么是函数?为什么要有函数? 函数是一种可重复使用的代码块,它们可以接受输入(参数)、执行特定的任务,并返回结果。 JavaScript中函数是非常…

计算机网络链路层(期末、考研)

计算机网络总复习链接🔗 目录 组帧差错控制检错编码纠错编码 流量控制与可靠传输机制流量控制、可靠传输与滑动窗口机制单帧窗口与停止-等待协议多帧滑动窗口与后退N帧协议(GBN)多帧滑动窗口与选择重传协议 介质访问控制信道划分介质访问控制…

Paper Reading: (InPL) 不平衡半监督学习中的分布内伪标记优先

目录 简介目标/动机方法实验总结Appendix 简介 题目:《InPL: Pseudo-labeling the Inliers First for Imbalanced Semi-supervised Learning》, ICLR’23 ​ InPL:不平衡半监督学习中的分布内伪标记优先 日期:2023.2.2 单位:威斯康星大学麦…

高通平台开发系列讲解(外设篇)高通平台EMMC适配说明

文章目录 一、EMMC的内部框图说明二、EMMC 设备树配置三、EMMC 内核配置四、EMMC 源码沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章主要图解高通平台 EMMC适配说明。 eMMC(嵌入式多媒体卡)是一种集成了闪存存储器和控制器的存储芯片,通常用于嵌入式设备中,…

米贸搜|facebook广告的素材及文案

一、Facebook广告的形式 1、 Facebook轮播广告 Facebook广告的轮播广告,商家可以在一个广告位。上面放3~5张图片或者是视频来展示产品或APP。虽然没有声音,这是用户可以自己滑动图片或视频,看到多款产品或者是单个产品的细节。 轮播广告的…

STM32的看门狗(WDG)

WDG(Watchdog)看门狗 看门狗可以监控程序的运行状态,当程序因为设计漏洞、硬件故障、电磁干扰等原因,出现卡死或跑飞现象时,看门狗能及时复位程序,避免程序陷入长时间的罢工状态,保证系统的可靠…

6.3 C++11 原子操作与原子类型

一、原子类型 1.多线程下的问题 在C中&#xff0c;一个全局数据在多个线程中被同时使用时&#xff0c;如果不加任何处理&#xff0c;则会出现数据同步的问题。 #include <iostream> #include <thread> #include <chrono> long val 0;void test() {for (i…

PXI/PCIe/VPX机箱 ARM|x86 + FPGA测试测量板卡解决方案

PXI便携式测控系统是一种基于PXI总线的便携式测试测控系统&#xff0c;它填补了现有台式及机架式仪器在外场测控和便携测控应用上的空白&#xff0c;在军工国防、航空航天、兵器电子、船舶舰载等各个领域的外场测控场合和科学试验研究场合都有广泛的应用。由于PXI便携式测控系统…

电机驱动开发

最近在搞电机驱动程序&#xff0c;感觉很简单&#xff0c;实际操作却发现里面还有很多猫腻&#xff08;细节&#xff09;。 电机在嵌入式设备中非常常见&#xff0c;例如云台的转动&#xff0c;都是靠电机来驱动的。 电机常见分步进电机、直流电机&#xff0c;相对来说步进电机…

C语言-WIN32API介绍

Windows API 从第一个32位的Windows开始就出现了&#xff0c;就叫做Win32API.它是一个纯C的函数库&#xff0c;就和C标准库一样&#xff0c;使你可以写Windows应用程序过去很多Windows程序是用这个方式做出来的 main()? main()成为C语言的入口函数其实和C语言本身无关&…

Fabric链码部署-go语言

最近在搞Fabric&#xff0c;今天刚刚明白如何把自己的链码部署并能跑通 网上的中文教程完全不友好&#xff0c;上来直接开始写代码&#xff0c;我连新建什么文件夹都不知道啊&#xff01;&#xff01; 于是痛定思痛&#xff0c;爆肝了一周多的官方文档 准备自己写一个&#…

数字孪生项目的开发框架

数字孪生的开发框架提供了一套工具和API&#xff0c;使开发者能够创建和管理数字孪生模型。这些框架通常包括虚拟建模、仿真、数据集成和分析等功能。以下是一些常见的数字孪生开发框架&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发…

ubuntu20.04禁用自动更新(禁用更新、禁用自动升级、禁用apt更新、禁用apt升级、禁用软件更新)

下面有点乱&#xff0c;总结一下&#xff0c;运行下面几条命令就行&#xff1a; systemctl status unattended-upgrades.service # 查看服务状态 systemctl disable unattended-upgrades.service #禁止开机启动无人更新 systemctl stop unattended-upgrades.service #停止无人…

Linux---切换目录命令

1. 切换目录命令的使用 命令说明cd 目录切换到指定目录cd ~切换到当前用户的主目录cd ..切换到上一级目录cd .切换到当前目录cd -切换到上一次目录 注意: cd命令切换目录时&#xff0c;这个目录必须存在。cd 后面不写目录等价于cd ~ cd 目录效果图: cd ~效果图: cd ..效果图…

437. 路径总和 III --力扣 --JAVA

题目 给定一个二叉树的根节点 root &#xff0c;和一个整数 targetSum &#xff0c;求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始&#xff0c;也不需要在叶子节点结束&#xff0c;但是路径方向必须是向下的&#xff08;只能从父节点到子节点…

SpringBootWeb入门、HTTP协议、Web服务器-Tomcat

目录 一、SpringBootWeb入门 二、HTTP协议 HTTP-请求协议 HTTP-响应协议 HTTP-协议解析 三、Web服务器-Tomcat 服务器概述 Tomcat 一、SpringBootWeb入门 直接基于SpringFramework进行开发&#xff0c;存在两个问题&#xff1a;配置繁琐、入门难度大 通过springboot就…

php 使用box打包

1.安装box 2.检查是否安装成功 3.查看路径&#xff0c;把路径添加到环境变量&#xff0c;方便使用 4.php项目根目录增加box.json配置文件 5.运行命令生成。这个是在cmd中运行的&#xff0c;记得切换到php源码目录 6.使用 php FastAdmin.phar运行。 说明&#xff1a;如果是常驻…

51.0/表单(详细版)

目录 51.1 输入元素 input 51.1.1 文本域 51.1.2 密码输入框 51.1.3 单选框 51.1.4 复选框 51.1.5 提交按钮 51.1.6 重置按钮 51.1.7 普通按钮 51.1.8 图片按钮 51.1.9 隐藏域 51.1.10 文件域 51.2 多行文本框 51.3 下拉列表框 51.4 表单的综合示例 表单是网页中…

Centos7部署SVN

文章目录 &#xff08;1&#xff09;SVN概述&#xff08;2&#xff09;SVN与Samba共享&#xff08;3&#xff09;安装SVN&#xff08;4&#xff09;SVN搭建实例&#xff08;5&#xff09;pc连接svn服务器&#xff08;6&#xff09;svn图标所代表含义 &#xff08;1&#xff09;…