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

深度网网站建设中国营销大师排名

深度网网站建设,中国营销大师排名,手工制作盲盒,南昌app定制2.2.数据卷 容器是隔离环境#xff0c;容器内程序的文件、配置、运行时产生的容器都在容器内部#xff0c;我们要读写容器内的文件非常不方便。大家思考几个问题#xff1a; 如果要升级MySQL版本#xff0c;需要销毁旧容器#xff0c;那么数据岂不是跟着被销毁了#x…2.2.数据卷 容器是隔离环境容器内程序的文件、配置、运行时产生的容器都在容器内部我们要读写容器内的文件非常不方便。大家思考几个问题 如果要升级MySQL版本需要销毁旧容器那么数据岂不是跟着被销毁了MySQL、Nginx容器运行后如果我要修改其中的某些配置该怎么办我想要让Nginx代理我的静态资源怎么办 因此容器提供程序的运行环境但是程序运行产生的数据、程序运行依赖的配置都应该与容器解耦。 2.2.1.什么是数据卷 数据卷volume是一个虚拟目录是容器内目录与宿主机目录之间映射的桥梁。 以Nginx为例我们知道Nginx中有两个关键的目录 -html放置一些静态资源 conf放置配置文件 如果我们要让Nginx代理我们的静态资源最好是放到html目录如果我们要修改Nginx的配置最好是找到conf下的nginx.conf文件。 但遗憾的是容器运行的Nginx所有的文件都在容器内部。所以我们必须利用数据卷将两个目录与宿主机目录关联方便我们操作。如图 在上图中 我们创建了两个数据卷conf、htmlNginx容器内部的conf目录和html目录分别与两个数据卷关联。而数据卷conf和html分别指向了宿主机的/var/lib/docker/volumes/conf/_data目录和/var/lib/docker/volumes/html/_data目录 **这样一来容器内的conf和html目录就 与宿主机的conf和html目录关联起来我们称为挂载。**此时我们操作宿主机的/var/lib/docker/volumes/html/_data就是在操作容器内的/usr/share/nginx/html/_data目录。只要我们将静态资源放入宿主机对应目录就可以被Nginx代理了。 小提示 /var/lib/docker/volumes这个目录就是默认的存放所有容器数据卷的目录其下再根据数据卷名称创建新目录格式为/数据卷名/_data。 为什么不让容器目录直接指向宿主机目录呢 1.因为直接指向宿主机目录就与宿主机强耦合了如果切换了环境宿主机目录就可能发生改变了。由于容器一旦创建目录挂载就无法修改这样容器就无法正常工作了。 2.但是容器指向数据卷一个逻辑名称而数据卷再指向宿主机目录就不存在强耦合。如果宿主机目录发生改变只要改变数据卷与宿主机目录之间的映射关系即可。 不过我们通过由于数据卷目录比较深不好寻找通常我们也允许让容器直接与宿主机目录挂载而不使用数据卷具体参考2.2.3小节。 2.2.2.数据卷命令 数据卷的相关命令有 命令说明docker volume create创建数据卷docker volume ls查看所有数据卷docker volume rm删除指定数据卷docker volume inspect查看某个数据卷的详情docker volume prune清除数据卷 注意容器与数据卷的挂载要在创建容器时配置对于创建好的容器是不能设置数据卷的。而且创建容器的过程中数据卷会自动创建。 容器与数据卷的挂载需要在创建容器时进行配置而不能对已经创建好的容器进行设置。在Docker中数据卷是在容器运行时动态挂载的可以在运行时通过-v参数将主机上的目录挂载到容器内部的目录。但是一旦容器被创建并运行就不能再重新配置其数据卷的挂载。 2.2.2.1 演示一下nginx的html目录挂载 1.通过dps上一篇文章设置的命令别名或 docker ps 查看容器是否存在 docker ps dps2.删除容器 docker rm -f nginx3.首先创建容器并指定数据卷注意通过 -v 参数来指定数据卷 docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx挂载目录在哪找上docker官网 查看文档 4.挂载完数据卷后然后查看数据卷 docker volume ls# 结果 DRIVER VOLUME NAME local d408fc247fe5905a87c60b72657a05841e88a41798e76e51bbe2f9ce49928760 local html5. 查看数据卷详情 docker volume inspect html# 结果 [{CreatedAt: 2023-11-28T21:22:5208:00,Driver: local,Labels: null,Mountpoint: /var/lib/docker/volumes/html/_data,Name: html,Options: null,Scope: local} ]6.查看宿主机的 /var/lib/docker/volumes/html/_data目录 ll /var/lib/docker/volumes/html/_data# 可以看到与nginx的html目录内容一样结果如下 总用量 8 -rw-r--r--. 1 root root 497 10月 24 21:46 50x.html -rw-r--r--. 1 root root 615 10月 24 21:46 index.html查看容器内部的文件 docker exec -it nginx bash cd /usr/share/nginx/html ls因为容器内部没有vill这些命令所以挂载数据卷的方式来修改宿主机的文件从而改变容器内部的文件 7.进入该目录(数据卷目录)并随意修改index.html内容 cd /var/lib/docker/volumes/html/_data vi index.html不想通过vi 进行修改的话可以点击 MobaXterm 的 Follow terminal folder 勾选,就可以像在windows上打开一个文件那样进行修改了 打开浏览器查看效果 9.添加静态资源 浏览器查看效果 10.进入容器内部查看/usr/share/nginx/html目录内的文件是否变化 docker exec -it nginx bash cd /usr/share/nginx/html ls大致流程 # 1.首先创建容器并指定数据卷注意通过 -v 参数来指定数据卷 docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx# 2.然后查看数据卷 docker volume ls # 结果 DRIVER VOLUME NAME local 29524ff09715d3688eae3f99803a2796558dbd00ca584a25a4bbc193ca82459f local html# 3.查看数据卷详情 docker volume inspect html # 结果 [{CreatedAt: 2024-05-17T19:57:0808:00,Driver: local,Labels: null,Mountpoint: /var/lib/docker/volumes/html/_data,Name: html,Options: null,Scope: local} ]# 4.查看/var/lib/docker/volumes/html/_data目录 ll /var/lib/docker/volumes/html/_data # 可以看到与nginx的html目录内容一样结果如下 总用量 8 -rw-r--r--. 1 root root 497 12月 28 2021 50x.html -rw-r--r--. 1 root root 615 12月 28 2021 index.html# 5.进入该目录并随意修改index.html内容 cd /var/lib/docker/volumes/html/_data vi index.html# 6.打开页面查看效果# 7.进入容器内部查看/usr/share/nginx/html目录内的文件是否变化 docker exec -it nginx bash教学演示环节演示一下MySQL的匿名数据卷 1.查看MySQL容器详细信息 docker inspect mysql # 关注其中.Config.Volumes部分和.Mounts部分我们关注两部分内容第一是.Config.Volumes部分 {Config: {// ... 略Volumes: {/var/lib/mysql: {}}// ... 略} }可以发现这个容器声明了一个本地目录需要挂载数据卷但是数据卷未定义。这就是匿名卷。 然后我们再看结果中的.Mounts部分 {Mounts: [{Type: volume,Name: 29524ff09715d3688eae3f99803a2796558dbd00ca584a25a4bbc193ca82459f,Source: /var/lib/docker/volumes/29524ff09715d3688eae3f99803a2796558dbd00ca584a25a4bbc193ca82459f/_data,Destination: /var/lib/mysql,Driver: local,}] }可以发现其中有几个关键属性 Name数据卷名称。由于定义容器未设置数据卷名这里的就是匿名卷自动生成的名字一串hash值。Source宿主机目录Destination : 容器内的目录 上述配置是将容器内的/var/lib/mysql这个目录与数据卷29524ff09715d3688eae3f99803a2796558dbd00ca584a25a4bbc193ca82459f挂载。于是在宿主机中就有了/var/lib/docker/volumes/29524ff09715d3688eae3f99803a2796558dbd00ca584a25a4bbc193ca82459f/_data这个目录。这就是匿名数据卷对应的目录其使用方式与普通数据卷没有差别。 接下来可以查看该目录下的MySQL的data文件 ls -l /var/lib/docker/volumes/29524ff09715d3688eae3f99803a2796558dbd00ca584a25a4bbc193ca82459f/_data注意每一个不同的镜像将来创建容器后内部有哪些目录可以挂载可以参考DockerHub对应的页面
http://www.pierceye.com/news/79810/

相关文章:

  • 合肥建设银行网站crm做的比较好的公司
  • 郑州哪里可以做网站网站中转页怎么做
  • 中文旅游网站html模板杭州网络公司建网站
  • 自己做的电商网站要多少钱手表网站免费设计
  • 网站 栏目做下拉WordPress添加有趣的
  • 怎样备份网站小广告设计
  • 偃师做网站wordpress08影视站
  • 做淘客网站哪个cms好开发小程序大概多少钱
  • 房屋经纪人网站端口怎么做网站建设春节放假
  • 网站开发公众号开发亚马逊网站建设分析
  • 高校专业建设网站零基础学it从哪方面学起
  • 眉山网站建设兼职营销型网站建设公司网络推广
  • 网站模板下载网站淘宝客怎么做直播网站
  • 郴州网站建设网站wordpress中visitor
  • 站长工具友链查询做rom的网站
  • 云梦网络 网站模板怎么做自己的博客网站
  • linux 搭建wordpress网站做优化需要哪些后台信息
  • 旧电脑怎么做网站平台网站开发公司
  • 天津专门做网站dw网页设计下载
  • 做网站运营用什么软件h5 网站开发流程图
  • 营销型企业网站制作公司高端做网站价格
  • it行业网站建设注册公司取名字
  • 公司网站建设费用入什么费用厦门关键词优化网站
  • 熊岳网站在哪做网页设计实训报告范例
  • 深圳高端品牌网站设计企业历史展厅设计
  • 免费商标设计网站开网店的流程步骤
  • 深圳网站设计开发余姚网站建设企业
  • 坪山网站建设行业现状个人主页网站建设
  • 邯郸做网站推广的公司自已建外贸网站
  • 购物网站的设计江苏海宏建设工程有限公司网站