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

备案网站制作怎么宣传自己的店铺

备案网站制作,怎么宣传自己的店铺,网站开发费的会计处理,幼教网站建设分析文章目录 一、什么是存储卷二、为什么需要存储卷三、存储卷分类四、管理卷Volume创建卷方式一#xff1a;Volume 命令操作方式二#xff1a;-v 或者--mount 指定方式三#xff1a;Dockerfile 匿名卷 操作案例Docker 命令创建管理卷Docker -v 创建管理卷Docker mount 创建管理… 文章目录 一、什么是存储卷二、为什么需要存储卷三、存储卷分类四、管理卷Volume创建卷方式一Volume 命令操作方式二-v 或者--mount 指定方式三Dockerfile 匿名卷 操作案例Docker 命令创建管理卷Docker -v 创建管理卷Docker mount 创建管理卷Docker 卷生命周期Docker 卷共享 五、绑定卷bind mount创建卷-v 参数创建卷--mount 参数创建绑定卷 操作案例mount创建绑定卷-v创建绑定卷绑定卷共享 六、临时卷 tmpfs创建卷方式一指定--tmpfs 创建方式二 --mount 指定参数创建 操作案例tmpfs 参数创建临时卷mount 创建临时卷tmpfs 失踪了 七、综合实战-MySQL 灾难恢复八、扩展思考存储卷在实际研发中带来了哪些问题 一、什么是存储卷 存储卷 就是将宿主机的本地文件系统中存在的某个目录直接与容器内部的文件系统上的某一目录建立绑定关系。这就意味着当我们在容器中的这个目录下写入数据时容器会将其内容直接写入到宿主机上与此容器建立了绑定关系的目录。在宿主机上的这个与容器形成绑定关系的目录被称作存储卷。卷的本质是文件或者目录它可以绕过默认的联合文件系统直接以文件或目录的形式存在于宿主机上。 宿主机的 /data/web 目录与容器中的 /container/data/web 目录绑定关系然后容器中的进程向这个目录中写数据时是直接写在宿主机的目录上的绕过容器文件系统与宿主机的文件系统建立关联关系使得可以在宿主机和容器内共享数据库内容让容器直接访问宿主机中的内容也可以宿主机向容器写入内容 容器和宿主机的数据读写是同步的。 生活案例 存储卷就相当于租了个地下室建立对应的映射就相当于有了这个地下室的钥匙能够使用房子以外的空间。 如果有一天龙卷风来了房子被吹毁了但是地下室依然安然无恙就相当于容器销毁了我们的这个地下室依然没有影响。 二、为什么需要存储卷 数据丢失问题 容器按照业务类型总体可以分为两类 无状态的数据不需要被持久化有状态的数据需要被持久化 显然容器更擅长无状态应用。因为未持久化数据的容器根目录的生命周期与容器的生命周期一样容器文件系统的本质是在镜像层上面创建的读写层运行中的容器对任何文件的修改都存在于该读写层当容器被删除时容器中的读写层也会随之消失。 虽然容器希望所有的业务都尽量保持无状态这样容器就可以开箱即用并且可以任意调度但实际业务总是有各种需要数据持久化的场景比如 MySQL、 Kafka 等有状态的业务。因此为了解决有状态业务的需求 Docker 提出了 卷Volume 的概念。 性能问题 UnionFS 对于修改删除等一般效率非常低如果对一于 I/O 要求比较高的应用如redis 在实现持化存储时是在底层存储时的性能要求比较高。宿主机和容器互访不方便 宿主机访问容器或者容器访问要通过 docker cp 来完成应用很难操作容器和容器共享不方便 三、存储卷分类 目前 Docker 提供了三种方式将数据从宿主机挂载到容器中 volume docker 管理卷默认映射到宿主机的 /var/lib/docker/volumes 目录下 只需要在容器内指定容器的挂载点是什么而被绑定宿主机下的那个目录是由容器引擎 daemon 自行创建一个空的目录或者使用一个已经存在的目录与存储卷建立存储关系这种方式极大解脱用户在使用卷时的耦合关系缺陷是用户无法指定那些使用目录临时存储比较适合。bind mount 绑定数据卷映射到宿主机指定路径下在宿主机上的路径要人工的指定一个特定的路径 在容器中也需要指定一个特定的路径 两个已知的路径建立关联关系。tmpfs mount 临时数据卷映射到于宿主机内存中一旦容器停止运行 tmpfs mounts 会被移除数据就会丢失用于高性能的临时数据存储。 四、管理卷Volume 创建卷 存储卷可以通过命令方式创建也可以在创建容器的时候通过 -v and --mount 指定。 方式一Volume 命令操作 命令清单如下 docker volume create 创建存储卷 语法 docker volume create [OPTIONS] [VOLUME]关键参数 -d, --driver 指定驱动默认是 local--label 指定元数据 样例 创建匿名卷 # 创建匿名卷 docker volume create # 遍历卷 docker volume ls # 查看卷的详细信息 docker volume inspect 1a9eb041a8b3b0143b6a58e0470366dfaf6c67ef05715a6d907d00b24e059193创建有名卷 docker volume create myvoltest1docker volume create --label MYTEST1 myvoltest2docker volume inspect 查看卷详细信息 功能 查看卷的详细信息语法 docker volume inspect [OPTIONS] VOLUME [VOLUME...]关键参数 -f 指定相应个格式如json 样例 docker volume inspect myvotest3 myvotest4docker volume ls 列出卷 语法 docker volume ls [OPTIONS]关键参数 --format 指定相应个格式如 json,table--filter,-f: 过滤-q: 仅显示名称 样例 #列出所有存储卷 docker volume ls #指定存储卷格式 docker volume ls --format json #过滤存储卷 docker volume ls -f labelMYTEST #仅显示存储卷名称 docker volume ls -qdocker volume rm 删除卷需要容器不使用 语法 docker volume rm [OPTIONS] VOLUME [VOLUME...]关键参数 -f,--force:强制删除 样例 # 删除存储卷 docker volume rm myvotest7 myvotest8 #写文件到宿主机目录下 echo 123 /data/var/lib/docker/volumes/myvotest7/_data/1.txtdocker volume prune 删除不使用的本地卷(匿名卷) 语法 docker volume prune [OPTIONS]关键参数 --filter:过滤-f, --force :不提示是否删除 样例 docker volume prune方式二-v 或者–mount 指定 -v 和-mount 都可以完成管理卷的创建。 -v参数完成目录映射 语法 docker run -v name:directory[:options] .........参数 第一个参数卷名称第二个参数卷映射到容器的目录第三个参数选项如 ro 表示 readonly 样例 创建容器时指定参数 docker run -d --name myvolnginx1 -v volnginx1:/usr/share/nginx/html/ nginx:1.24.0进入容器中做首页的删除 docker exec -it myvolnginx1 bash cd /usr/share/nginx/html/ rm index.html查看宿主机存储卷目录下的文件 ls /data/var/lib/docker/volumes/volnginx1/_data如果指定ro选项那么容器中的文件是不能删除的。 --mount 参数 完成目录映射 语法 --mount keyvalue,keyvalue关键参数 type 类型表示 bind, volume, or tmpfssource src 对于命名卷这是卷的名称。对于匿名卷省略此字段destination dst,target文件或目录挂载在容器中的路径ro,readonly: 只读方式挂载 样例 创建命名卷 docker run -d --name mynginxvol3 --mount srcnginxvol3,dst/usr/share/nginx/html nginx:1.24.0创建匿名卷 docker run -d --name mynginxvol4 --mount dst/usr/share/nginx/html nginx:1.24.0方式三Dockerfile 匿名卷 通过 Dockerfile 的 VOLUME 可以创建 docker 管理卷。这个我们后续在 Dockerfile中详细讲解。 我们也可以通过 dockerfile 的 VOLUME 指令在镜像中创建 Data Volume这样只要通过该镜像创建的容器都会存在挂载点但值得注意的是通过 VOLUME 指令创建的挂载点无法指定主机上对应的目录而是由 docker 随机生成的。 操作案例 Docker 命令创建管理卷 创建并绑定管理卷 docker volume create test1 docker run -d --name mynginx1 -p 8045:80 -v test1:/usr/share/nginx/html nginx:1.24.0查看容器的具体绑定信息 docker inspect mynginx1在宿主机上修改首页查看容器中的变化 Docker -v 创建管理卷 创建并绑定管理卷 docker run -d --name mynginx2 -v test2:/usr/share/nginx/html/:ro -p 8046:80 nginx:1.24.0进入容器中看能否修改首页 docker exec -it mynginx2 bash cd /usr/share/nginx/html echo hello from -v index.html进入宿主机看能否修改首页内容 Docker mount 创建管理卷 创建管理卷并绑定到容器首页所在的目录 docker run -d --name mynginx3 -p 8047:80 --mount srctest3,dst/usr/share/nginx/html/ nginx:1.24.0在宿主机中修改首页内容查看发生的变化 Docker 卷生命周期 创建管理卷并绑定到容器首页所在的目录 docker run -d --name mynginx3 -p 8047:80 --mount srctest3,dst/usr/share/nginx/html/ nginx:1.24.0删除掉容器查看卷中的内容是否被删除掉 #删除存储卷 docker volume rm test3Docker 卷共享 创建三个容器并绑定到同一个管理卷下 docker run -d --name mynginx51 -p 8052:80 -v test4:/usr/share/nginx/html/ nginx:1.24.0 docker run -d --name mynginx52 -p 8053:80 -v test4:/usr/share/nginx/html/ nginx:1.24.0 docker run -d --name mynginx53 -p 8054:80 -v test4:/usr/share/nginx/html/ nginx:1.24.0进入宿主机中管理卷下查看首页内容 cd /data/var/lib/docker/volumes/test4/_data在宿主机中修改管理卷下首页内容 同时浏览器中也发生了改变。 五、绑定卷bind mount 创建卷 -v 参数创建卷 功能 完成卷映射语法 docker run -v name:directory[:options] .........参数 第一个参数 宿主机目录这个和管理卷是不一样的第二个参数卷映射到容器的目录第三个参数选项如 ro 表示 readonly 样例 docker run -d --name mynginx6 -v /data/cjl/testbind:/usr/share/nginx/html/ nginx:1.24.0 docker inspect mynginx6在宿主机上进行修改看容器中是否会发生改变 –mount 参数创建绑定卷 功能 完成目录映射语法 --mount keyvalue,keyvalue关键参数 type 类型表示 bind, volume, or tmpfssource src 宿主机目录这个和管理卷是不一样的。destination dst,target文件或目录挂载在容器中的路径ro,readonly: 只读方式挂载 样例 docker run -d --name mynginx7 --mount typebind,src/data/cjl/testmymountbind,dst/usr/share/nginx/html/ nginx:1.24.0在容器中创建文件看是否会同步到宿主机中。 docker exec -it mynginx7 bash echo Hello bind by mount! index.html操作案例 mount创建绑定卷 宿主机中目录不存在时绑定卷会失败。 docker run -d --name mynginx8 --mount typebind,src/data/cjl/testbindmount1/,dst/usr/share/nginx/html nginx:1.24.0宿主机中目录存在时绑定卷成功。 docker run -d --name mynginx8 --mount typebind,src/data/cjl/testbindmount2/,dst/usr/share/nginx/html nginx:1.24.0-v创建绑定卷 如果宿主机中目录不存在-v方式可以创建 docker run -d --name mynginx9 -v /data/cjl/testbindmount3:/usr/share/nginx/html/ nginx:1.24.0如果宿主机和容器中有同样名称的文件会以宿主机中为主 echo test -v volume index.html docker run -d --name mynginx10 -v /data/cjl/testbindmount4:/usr/share/nginx/html/ nginx:1.24.0绑定卷共享 启动两个nginx容器并绑定到同一个宿主机目录下 docker run -d -p 8061:80 --name mynginx11 -v /data/cjl/testbindmount5/:/usr/share/nginx/html nginx:1.24.0docker run -d -p 8062:80 --name mynginx12 -v /data/cjl/testbindmount5/:/usr/share/nginx/html nginx:1.24.0六、临时卷 tmpfs 临时卷数据位于内存中在容器和宿主机之外。 tmpfs 局限性 不同于卷和绑定挂载不能在容器之间共享 tmpfs 挂载。这个功能只有在 Linux 上运行 Docker 时才可用。 创建卷 方式一指定–tmpfs 创建 功能 完成临时卷映射语法 --tmpfs /app样例 docker run -d --name mynginx15 --tmpfs /test1 nginx:1.24.0方式二 --mount 指定参数创建 功能 完成目录映射语法 --mount keyvalue,keyvalue关键参数 type 类型表示 bind, volume, or tmpfsdestination dst,target挂载在容器中的路径tmpfs-size tmpfs 挂载的大小以字节为单位。默认无限制。tmpfs-mode tmpfs 的八进制文件模式。例如 700 或 0770。默认为 1777或全局可写。 样例 docker run -d --name mynginx16 --mount typetmpfs,dst/test2 nginx:1.24.0操作案例 tmpfs 参数创建临时卷 docker run -d --name mynginx17 -p 8078:80 --tmpfs /usr/share/nginx/html/ nginx:1.24.0重启容器后nginx首页文件将不存在 mount 创建临时卷 docker run -d --name mynginx18 -p 8092:80 --mount typetmpfs,dst/usr/share/nginx/html/,tmpfs-size1m nginx:1.24.0当我们创建临时卷时指定挂载的大小时如果有超过该大小的文件拷贝进入容器中不被允许。 tmpfs 失踪了 该案例主要要求我们掌握临时卷的创建方式了解临时卷的特殊存储方式 运行一个容器并在容器中创建一个文件回到宿主机查找该文件可以找到并且和容器中的一模一样。 docker run -d --name mynginx19 nginx:1.24.0创建容器并绑定临时卷在容器中对应的目录下创建标记文件发现在宿主机中找不到该文件 docker run -d --name mynginx20 --mount typetmpfs,dst/test/ nginx:1.24.0七、综合实战-MySQL 灾难恢复 实战目的 掌握挂载卷的使用将 mysql 的业务数据存储到外部 实战步骤 使用 MySQL 5.7 的镜像创建容器并创建一个普通数据卷 mysql-data 用来保存容器中产生的数据。需要在容器中连接 MySQL 服务 并创建数据库 test, 并在在该数据库中创建一个简单的表并插入一些数据进来。 启动mysql容器并绑定到宿主机的指定目录 docker run --name mysql2 -v /data/cjl/mysql2test:/var/lib/mysql -e MYSQL_ROOT_PASSWORDroot -d mysql:5.7 #在容器中登录mysql mysql -h localhost -uroot -p不小心删除掉mysql容器 启动一个新的容器绑定到宿主机原来的目录 docker run --name mysql2new -v /data/cjl/mysql2test:/var/lib/mysql -e MYSQL_ROOT_PASSWORDroot -d mysql:5.7进入新的容器检查数据究竟是否还在 因此存储卷只要我们不是人工删除它在容器删除后也不会自动销毁。 八、扩展思考存储卷在实际研发中带来了哪些问题 跨主机使用 docker 存储卷是使用其所在的宿主机上的本地文件系统目录也就是宿主机有一块磁盘这块磁盘并没有共享给其他的 docker 主机容器在这宿主机上停止或删除是可以重新再创建的但是不能调度到其他的主机上这也是 docker 本身没有解决的问题所以 docker 存储卷默认就是 docker 所在主机的本地但是自己搭建一个共享的 NFS 来存储 docker 存储的数据也可以实现 但是这个过程强依赖于运维人员的能力。 所以未来应用的存储和数据往往分离越来越多的分布式存储方案出现如 s3 系列nfs 等。** 启动参数未知** 容器有一个问题一般与进程的启动不太一样就是容器启动时选项比较多如果下次再启动时很容器会忘记它启动时的选项所以最好有一个文件来保存容器的启动这就是容器编排工具的作用。 一般情况下是使用命令来启动操作 docker,但是可以通过文件来读也就读文件来启动读所需要的存储卷等但是它也只是操作一个容器如果要几十上百个容器操作就需要专业的容器编排工具。 这种一般像开源的 k8s各个云厂商也有自己的企业版编排软件。复杂场景仍然需要运维 对于有状态要持久的集群化组件如 mysql 的主从。部署维护一个 Mysql 主从需要运维知识、经验整合进去才能实现所谓的部署扩展或缩容出现问题后修复必须要了解集群的规模有多大有多少个主节点有多少个从节点主节点上有多少个库这些都要一清二楚才能修复故障这些就强依赖于运维经验。 这种复杂的场景往往还是需要人力很难有完美的工具出现。
http://www.zqtcl.cn/news/435476/

相关文章:

  • 域名备案期间怎么做网站广告投放行业
  • wordpress站内搜索统计网站突然不收录了
  • 网站源码小千个人网做网页设计一个月能挣多少
  • 贵州省建设厅公示网站广州seo网站推广费用
  • 旅游网站建设前期分析公众号制作多少钱
  • 延庆长沙网站建设怎样下载门户网站
  • flash 网站建设建设带数据搜索的网站
  • 设计网站网站名称云主机 小型网站
  • 网站建设方案书 模版公司制作网站收费标准
  • 福州企业网站html模板网站模板下载
  • 湛江自做网站城乡住建局官网
  • 广东网站建设找自己做网站还有出路吗
  • wordpress后台管理地址更改班级优化大师怎么用
  • 电脑网站开发学习产品怎么做市场推广
  • 上海市网站建设公叿目前流行的app网站开发模式
  • 企业手机网站建设效果wordpress栏目链接地址
  • 产品经理做网站网络公司名字免费起名大全
  • 做得比较好的公司网站kol营销
  • 百度指数分析平台长春seo优化企业网络跃升
  • 如何免费做网站域名wordpress 赚钱
  • 苏州市住房建设局网站首页温州网站设计公司
  • 网站模板哪个好用汕头建设工程总公司
  • iis网站重定向软件开发培训机构排名
  • 浙江大学教室办事大厅网站建设网页棋牌搭建
  • 长沙市天心区建设局网站新河网站
  • 网站改版 升级的目的嘉兴海盐县城乡建设局网站
  • 网站建设一年多少钱上海工程建设交易信息网站
  • 网站推广到底应该怎么做中国建设银行网上登录入口
  • 东莞网站建设服务商wordpress页面样式
  • 亿星网站建设创业网站怎么做