当前位置: 首页 > news >正文

先锋设计网站wordpress 提示

先锋设计网站,wordpress 提示,做农业网站,网站两边的悬浮框怎么做前言 那么这里博主先安利一些干货满满的专栏了#xff01; 首先是博主的高质量博客的汇总#xff0c;这个专栏里面的博客#xff0c;都是博主最最用心写的一部分#xff0c;干货满满#xff0c;希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏… 前言 那么这里博主先安利一些干货满满的专栏了 首先是博主的高质量博客的汇总这个专栏里面的博客都是博主最最用心写的一部分干货满满希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏《Docker从认识到实践再到底层原理》希望大家多多关注 Docker从认识到实践再到底层原理 第七章-Docker存储卷 1. Docker Volume引入 参考比特就业课 1.1 什么是存储卷 存储卷就是将宿主机的本地文件系统中存在的某个目录直接与容器内部的文件系统上的某一目录建立绑定关系。这就意味着当我们在容器中的这个目录下写入数据时容器会将其内容直接写入到宿主机上与此容器建立了绑定关系的目录。在宿主机上的这个与容器形成绑定关系的目录被称作存储卷。卷的本质是文件或者目录它可以绕过默认的联合文件系统直接以文件或目录的形式存在于宿主机上。 宿主机的/data/web 目录与容器中的/container/data/web 目录绑定关系然后容器中的进程向这个目录中写数据时是直接写在宿主机的目录上的绕过容器文件系统与宿主机的文件系统建立关联关系使得可以在宿主机和容器内共享数据库内容让容器直接访问宿主机中的内容也可以宿主机向容器写入内容容器和宿主机的数据读写是同步的。 1.2 为什么需要存储卷 1.2.1 数据丢失问题 容器按照业务类型总体可以分为两类 无状态的数据不需要被持久化 有状态的数据需要被持久化 显然容器更擅长无状态应用。因为未持久化数据的容器根目录的生命周期与容器的生命周期一样容器文件系统的本质是在镜像层上面创建的读写层运行中的容器对任何文件的修改都存在于该读写层当容器被删除时容器中的读写层也会随之消失。虽然容器希望所有的业务都尽量保持无状态这样容器就可以开箱即用并且可以任意调度但实际业务总是有各种需要数据持久化的场景比如 MySQL、Kafka 等有状态的业务。因此为了解决有状态业务的需求Docker 提出了卷Volume的概念。 1.2.2 性能问题 UnionFS 对于修改删除等一般效率非常低如果对一于 I/O 要求比较高的应用如redis 在实现持化存储时是在底层存储时的性能要求比较高。 1.2.3 宿主机和容器互访不方便 宿主机访问容器或者容器访问要通过docker cp来完成应用很难操作 1.2.4 容器和容器共享不方便 2. 存储卷分类 目前 Docker 提供了三种方式将数据从宿主机挂载到容器中 volume docker 管理卷默认映射到宿主机的/var/lib/docker/volumes我们改过的目录下只需要在容器内指定容器的挂载点是什么而被绑定宿主机下的那个目录是由容器引擎 daemon 自行创建一个空的目录或者使用一个已经存在的目录与存储卷建立存储关系这种方式极大解脱用户在使用卷时的耦合关系缺陷是用户无法指定哪些使用目录临时存储比较适合; bind mount 绑定数据卷映射到宿主机指定路径下在宿主机上的路径要人工的指定一个特定的路径在容器中也需要指定一个特定的路径两个已知的路径建立关联关系 tmpfs mount临时数据卷映射到于宿主机内存中一旦容器停止运行tmpfs mounts会被移除数据就会丢失用于高性能的临时数据存储。 3. 管理卷 Volume 3.1 Volume 命令清单 命令功能docker volume create创建存储卷docker volume inspect显示存储卷详细信息docker volume ls列出存储卷docker volume prune清理所有无用数据卷docker volume rm删除卷、使用中的无法删除 3.2 docker volume create 关键参数 -d, --driver 指定驱动默认是 local --label 指定元数据直接不给任何参数就是系统给的随机名字。 当然我们也可以查看他挂载到宿主机的哪一个目录。 [rootALiCentos7:~]$ docker volume inspect fd8f7ab68c681a1651faff71a2da89c8b040a1bd0b58c285206e2488cfd9d306 [{CreatedAt: 2023-09-19T18:54:1308:00,Driver: local,Labels: {com.docker.volume.anonymous: },Mountpoint: /data/var/lib/docker/volumes/fd8f7ab68c681a1651faff71a2da89c8b040a1bd0b58c285206e2488cfd9d306/_data,Name: fd8f7ab68c681a1651faff71a2da89c8b040a1bd0b58c285206e2488cfd9d306,Options: null,Scope: local} ] [rootALiCentos7:~]$创建一个有名字的。 [rootALiCentos7:~]$ docker volume create myboltest1 myboltest1 [rootALiCentos7:~]$ docker volume ls DRIVER VOLUME NAME local fd8f7ab68c681a1651faff71a2da89c8b040a1bd0b58c285206e2488cfd9d306 local myboltest1 [rootALiCentos7:~]$ 3.3 docker volume inspect docker volume inspect [OPTIONS] VOLUME [VOLUME...]参数 -f指定相应个格式, 如json3.4 docker volume ls 参数。 --format指定相应个格式如 json,table --filter,-f: 过滤 -q: 仅显示名称3.5 docker volume rm 参数。 -f, --force : 强制删除3.6 docker volume prune 清理不使用的本地卷。 参数。 --filter : 过滤 -f, --force : 不提示是否删除[rootALiCentos7:~]$ docker volume ls DRIVER VOLUME NAME local fd8f7ab68c681a1651faff71a2da89c8b040a1bd0b58c285206e2488cfd9d306 local myboltest1 [rootALiCentos7:~]$ docker volume prune WARNING! This will remove anonymous local volumes not used by at least one container. Are you sure you want to continue? [y/N] y Deleted Volumes: fd8f7ab68c681a1651faff71a2da89c8b040a1bd0b58c285206e2488cfd9d306Total reclaimed space: 0B [rootALiCentos7:~]$ docker volume ls DRIVER VOLUME NAME local myboltest1 [rootALiCentos7:~]$3.7 管理卷创建方式二 -v参数和--mount参数 -v 和-mount 都可以完成管理卷的创建 3.7.1 -v参数 功能完成目录映射 docker run -v name:directory[:options] ...参数 第一个参数卷名称 第二个参数卷映射到容器的目录 第三个参数选项如 ro 表示 readonly实操。 docker run -d --name myvolnginx1 -v volnginx1:/usr/share/nginx/html/ nginx:1.21.4现在我们进入这个容器尝试把这个东西删除看看现象是怎么样的。 如果带上-ro选项呢read only [rootALiCentos7:~]$ docker exec -it myvolnginx1 bash root838d01664db5:/# cd /usr/share/nginx/html/ root838d01664db5:/usr/share/nginx/html# ls 50x.html root838d01664db5:/usr/share/nginx/html# rm 50x.html rm: cannot remove 50x.html: Read-only file system root838d01664db5:/usr/share/nginx/html# rm 50x.html rm: cannot remove 50x.html: Read-only file system root838d01664db5:/usr/share/nginx/html# root838d01664db5:/usr/share/nginx/html# 此时已经删不了了。 3.7.2 --mount参数 完成目录的映射。 参数。 type : 类型表示 bind, volume, or tmpfs source, src : 对于命名卷这是卷的名称。对于匿名卷省略此字段。 destination, dst, target : 文件或目录挂载在容器中的路径 ro, readonly : 只读方式挂载实操。 docker run -d --name mynginxvol3 --mount srcnginxvol3,dst/usr/share/nginx/html nginx:1.21.4 [rootALiCentos7:~]$ docker run -d --name mynginxvol4 --mount dst/usr/share/nginx/html nginx:1.22.0 2d04251a15f4a4216a079b798524a1e1c31f841d61417bfcb86aa2956cc63004 [rootALiCentos7:~]$ docker inspect my mynginxvol4 mywebsite-yufc:v1.0 [rootALiCentos7:~]$ docker inspect mynginxvol4 [{Id: 2d04251a15f4a4216a079b798524a1e1c31f841d61417bfcb86aa2956cc63004,Created: 2023-09-19T12:05:44.437893015Z,Path: /docker-entrypoint.sh,Args: [nginx,-g,daemon off;],3.8 Dockerfile匿名卷 通过 Dockerfile 的 VOLUME 可以创建 docker管理卷。这个我们后续在 Dockerfile中详细讲解。我们也可以通过 dockerfile 的 VOLUME 指令在镜像中创建 Data Volume这样只要通过该镜像创建的容器都会存在挂载点但值得注意的是通过 VOLUME 指令创建的挂载点无法指定主机上对应的目录而是由 docker 随机生成的。 3.9 操作案例 3.9.1 案例一 如果在宿主机对容器里面的内容作修改会怎么样会同步到容器中。 先把环境准备好。 改一下。 发现容器里面也同步修改了。 3.9.2 案例二 如果通过ro的方式绑定还能修改吗宿主机能修改吗容器里能修改吗 先把容器跑起来 发现宿主机上上可以改的。 发现容器里面是改不了的。 3.9.3 案例三 用--mount的方式重复上面两个案例的操作看看能不能容器和宿主机同步。 用--mount来启动一个容器。 对首页作修改。 可以修改。 3.10 docker卷的生命周期 结论容器删除掉卷里面的内容还是在的毕竟这个卷本来就是用来保护数据的。 但是如果docker volume rm test3东西就肯定不在了。 [rootALiCentos7:~]$ ll /data/var/lib/docker/volumes/test3/_data total 8 -rw-r--r-- 1 root root 497 Nov 2 2021 50x.html -rw-r--r-- 1 root root 630 Sep 19 21:09 index.html [rootALiCentos7:~]$ docker volume rm test3 test3 [rootALiCentos7:~]$ ll /data/var/lib/docker/volumes/test3/_data ls: cannot access /data/var/lib/docker/volumes/test3/_data: No such file or directory [rootALiCentos7:~]$ 3.11 卷共享 启动三个容器绑定到同一个卷上看看修改后会怎么样。 结论三个容器会同时刷新。 这里就不做演示了云服务器不想开这么多端口。 4.绑定卷 bind mount -v 和-mount 都可以完成绑定卷的创建。 4.1 -v参数创建绑定卷 docker run -v name:directory[:options] ...参数 第一个参数宿主机目录这个和管理卷是不一样的 第二个参数卷映射到容器的目录 第三个参数选项如 ro 表示 readonly第一个参数如果是宿主机的目录那就是绑定卷不指定就是管理卷的匿名卷如果是一个名称就是管理卷。 实操 docker run -d --name mynginx -v /root/DockerSrc/Volume/:/usr/share/nginx/html f6987c8d6ed5宿主机做一个修改。 发现里面也会有的。 4.2 --mount参数创建绑定卷 --mount keyvalue,keyvalue参数。 type : 类型表示 bind, volume, or tmpfs source, src : 宿主机目录这个和管理卷是不一样的。 destination, dst, target : 文件或目录挂载在容器中的路径 ro, readonly : 只读方式挂载看下容器里面写一个文件看看宿主机里面会不会出现。 4.3 绑定卷的操作案例 4.3.1 案例一 使用--mount方式创建容器 创建 nginx 容器并将宿主机/webapp1 目录挂载至容器/usr/share/nginx/html目录,注意如果webapp1目录不存在会启动报错。 如果宿主机的目录不存在会直接报错的 4.3.2 案例二绑定卷的共享 结论和管理卷的共享是一样的宿主机改了所有容器都会修改。 5. 临时卷 tmpfs 临时卷数据位于内存中在容器和宿主机之外。 tmpfs局限性 不同于卷和绑定挂载不能在容器之间共享 tmpfs 挂载。 这个功能只有在 Linux 上运行 Docker时才可用 5.1 创建卷 方式一指定--tmpfs创建 此时的实验和前面的都一样但是如果容器停止了东西就会没了。 6. 综合实战-MySQL灾难恢复 实战目的 掌握挂载卷的使用将 mysql 的业务数据存储到外部 实战步骤 使用 MySQL 5.7 的镜像创建容器并创建一个普通数据卷 mysql-data 用来保存容器中产生的数据。需要在容器中连接 MySQL 服务 并创建数据库 test, 并在在该数据库中创建一个简单的表并插入一些数据进来。 首先先找到一个mysql点容器并运行起来先。 docker run --name mysql -v /root/DockerSrc/Volume/mysql-test:/var/lib/mysql -e MYSQL_ROOT_PASSWORDyfctest -d mysql:5.7连上这个mysql。 创建一个数据库。 创建表。 删除这个正在运行的容器。 现在跑一个新的容器绑定到原来的目录看看东西还在不在。 docker run --name mysql-new -v /root/DockerSrc/Volume/mysql-test:/var/lib/mysql -e MYSQL_ROOT_PASSWORDyfctest -d mysql:5.7发现东西还在。
http://www.huolong8.cn/news/43889/

相关文章:

  • 哪个网站可以做视频播放器烟台广告公司网站建设
  • 中国建设银行济南招聘信息网站wordpress地址 站点地址
  • 网站开发视频代码广州协会网站建设
  • 安阳市哪里做网站建设中文企业网站模板免费下载
  • wordpress安装无法创建目录.整站seo公司
  • 建设网站模块需要哪些内容南昌房地产信息网
  • 百度地图放到网站上德州有名的网站建设公司
  • 怎样做带音乐的表白网站新乡网站建设哪家公司好
  • 餐饮设计网站建设一学一做教育视频网站有哪些内容
  • 椒江建设工程机械厂网站推广淘特一个新人多少钱
  • wordpress建站图片效果网页设计基础是什么
  • 聚成网络网站建设php 网站后台
  • 鄱阳县精准扶贫旅游网站建设目的有没有免费开网站的
  • 福建省中城建设工程有限公司网站广西桂建云证件查询
  • 腾讯建站模板杭州做网站哪家公司好
  • 山东川畅科技网站设计网络营销策划模板
  • 电子商城网站开发软件做公司网站用什么系统
  • 苏州相城网站建设html是建网站导航栏怎么做
  • 前端网站开发总结申请域名费用
  • 黄冈网站建设报价北京网站建设公司 北京网站设计 网页设计制作 高端网站建设 分形科技
  • 小工厂怎么做网站j2ee 网站开发
  • 成都网站推广优化公司网络服务类型及协议
  • 推荐一些做电子的网站关键词云图
  • 怎样做水果外卖加盟网站邢台163官网
  • c 网站开发引擎网络广告策划的概念
  • 大学生创新创业网站开发建设展示型网站公司哪家好
  • 做外贸比较好得网站网站栏目 添加 管理
  • 国内外网站建设比较景德镇网站维护
  • 微信怎么做网站的动图西安建设公司都有哪些
  • angular2是做网站的还是手机的企业app有哪些