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

2345浏览器网站网络工程师岗位

2345浏览器网站,网络工程师岗位,wordpress 炫酷主题,买书的网站排名docker镜像是分层设计的,镜像出只读,通过镜像启动的容器添加一层可读写的文件系统,用户写入的数据表都保存在这层中。 容器的数据分层目录 LowerDir:image 镜像层,即镜像本身,制度 UpperDir:容…

docker镜像是分层设计的,镜像出只读,通过镜像启动的容器添加一层可读写的文件系统,用户写入的数据表都保存在这层中。

容器的数据分层目录

 LowerDir:image 镜像层,即镜像本身,制度

UpperDir:容器上层,可读写,容器变化的数据存在在此处

MergeDir:容器的文件系统,使用Union FS(联合文件系统)将 LowerDir和UpperDir合并完成后给容器使用,最终呈现给用户的统一视图

WorkDir:容器在宿主机的工作目录,挂在后内容会被清空,请在使用过程中其内容用户不可见

数据持久化方式

1.卷 volume 最常使用

2.绑定挂载 bindmount 有安全风险

3.tmpfs挂载    挂载在内存里,且容器停止时 挂载文件会删除

卷分类

数据卷(Data Volume) 直接将宿主机目录挂载只容器的指定目录 常用

数据卷容器(Data Volume Container)间接使用宿主机空间,数据卷容器是将宿主机的目录挂载至一个专门的数据卷容器,然后让其他容器通过数据卷容器读写宿主机的数据,不常用

数据卷详解

1.数据卷使用场景

数据库

日志输出

静态web页面

应用配置文件

多容器间目录或文件共享

2.数据卷特点

①数据卷是目录或者文件,并且可以在多个容器之间共同使用,实现容器之间共享和重用

②对数据卷更改数据在所有容器里面会立即更新

③数据卷的数据可以持久保存,删除使用该容器卷的容器也不影响

④在容器里面的写入数据不会形象到镜像本身,即数据卷的变化不会影响镜像的更新

⑤依赖于宿主机目录,宿主机出问题上面容器会受影响,当宿主机较多时,不方便统一管理

⑥匿名和命名数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,会拷贝到新初始化的数据卷中

3.数据卷分类

启动容器时,可以指定使用数据卷实现容器数据的持久化,数据卷有三种

①指定宿主机目录或文件:指定宿主机的具体路径和容器路径的挂载关系,此方式不会创建数据卷

②匿名卷:不指定数据名称,至指定容器内目录路径充当挂载点,dicker自动指定宿主机的路径进行挂载,此方式会创建匿名数据卷,dockerfile中volume指定的卷即为此种

③命名卷:指定数据卷的名称和容器路径的挂载关系,此方式会创建命名数据卷

案例 1:MySQL 数据库

目标

- 将 MySQL 数据库的数据持久化到主机上的命名数据卷中,确保数据在容器重启或删除后仍然保留。

步骤

1. 创建命名数据卷:

   docker volume create mysql_data

2. 启动 MySQL 容器并挂载命名数据卷:

   docker run -d --name mysql-container \

     -e MYSQL_ROOT_PASSWORD=my-secret-pw \

     -v mysql_data:/var/lib/mysql \

     mysql:latest

3. 验证数据卷:

   - 进入容器检查数据是否正确挂载:

     docker exec -it mysql-container sh

     ls /var/lib/mysql

4. 停止和删除容器:

   docker stop mysql-container

   docker rm mysql-container

5. 重新启动容器并挂载相同的命名数据卷:

   docker run -d --name mysql-container \

     -e MYSQL_ROOT_PASSWORD=my-secret-pw \

     -v mysql_data:/var/lib/mysql \

     mysql:latest

6. 验证数据是否保留:

   - 进入容器检查数据是否仍然存在:

   

     docker exec -it mysql-container sh

     ls /var/lib/mysql

解释

docker volume create mysql_data:创建一个名为 mysql_data 的命名数据卷。

--v mysql_data:/var/lib/mysql:将命名数据卷 mysql_data 挂载到容器内的 /var/lib/mysql 目录,这是 MySQL 存储数据的默认位置。

docker stop 和 docker rm:停止并删除容器,但命名数据卷中的数据仍然保留。

重新启动容器:再次启动容器时,使用相同的命名数据卷,数据仍然存在。

案例 2:Nginx 静态文件

目标

将 Nginx 服务器的静态文件持久化到主机上的命名数据卷中,确保文件在容器重启或删除后仍然保留。

步骤

1. 创建命名数据卷: 

   docker volume create nginx_static

2. 启动 Nginx 容器并挂载命名数据卷:

   docker run -d --name nginx-container \

     -p 80:80 \

     -v nginx_static:/usr/share/nginx/html \

     nginx:latest

3. 向数据卷中添加静态文件:

   - 创建一个 HTML 文件并复制到数据卷中:

     echo "<h1>Hello, Docker!</h1>" > index.html

     docker cp index.html nginx_container:/usr/share/nginx/html/

4. 验证静态文件:

   - 访问 `http://localhost`,应该能看到 "Hello, Docker!" 页面。

5. 停止和删除容器:

   docker stop nginx-container

   docker rm nginx-container

6. 重新启动容器并挂载相同的命名数据卷:

   docker run -d --name nginx-container \

     -p 80:80 \

     -v nginx_static:/usr/share/nginx/html \

     nginx:latest

7. 验证静态文件是否保留:

  访问 http://localhost,应该仍然能看到 "Hello, Docker!" 页面。

解释

docker volume create nginx_static:创建一个名为 nginx_static 的命名数据卷。

-v nginx_static:/usr/share/nginx/html:将命名数据卷 nginx_static挂载到容器内的 /usr/share/nginx/html` 目录,这是 Nginx 存储静态文件的默认位置。

docker cp:将本地文件复制到容器内的指定目录。

docker stop和 docker rm:停止并删除容器,但命名数据卷中的静态文件仍然保留。

重新启动容器:再次启动容器时,使用相同的命名数据卷,静态文件仍然存在。

案例 3:Redis 数据库

目标

 将 Redis 数据库的数据持久化到主机上的命名数据卷中,确保数据在容器重启或删除后仍然保留。

步骤

1. 创建命名数据卷:

   docker volume create redis_data

2. 启动 Redis 容器并挂载命名数据卷:

   docker run -d --name redis-container \

     -v redis_data:/data \

     redis:latest

3. 验证数据卷:

   - 进入容器检查数据是否正确挂载:

   

     docker exec -it redis-container sh

     ls /data

4. 写入数据:

   - 使用 `redis-cli` 写入一些数据:

   

     docker exec -it redis-container redis-cli

     set key1 value1

     exit

5. 停止和删除容器:

   docker stop redis-container

   docker rm redis-container

6. 重新启动容器并挂载相同的命名数据卷:

   docker run -d --name redis-container \

     -v redis_data:/data \

     redis:latest

7. 验证数据是否保留:

   - 使用 redis-cli 检查数据是否仍然存在:

   

     docker exec -it redis-container redis-cli

     get key1

     exit

解释

docker volume create redis_data:创建一个名为 redis_data 的命名数据卷。

-v redis_data:/data:将命名数据卷 redis_data 挂载到容器内的 /data 目录,这是 Redis 存储数据的默认位置。

docker exec -it redis-container redis-cli:进入容器并使用 `redis-cli` 进行数据操作。

docker stop 和 docker rm:停止并删除容器,但命名数据卷中的数据仍然保留。

重新启动容器:再次启动容器时,使用相同的命名数据卷,数据仍然存在。

案例 4:多容器共享数据

目标

在多个容器之间共享数据,使用命名数据卷确保数据的一致性和持久性。

步骤

1. 创建命名数据卷:

   docker volume create shared_data

2. 启动第一个容器并挂载命名数据卷:

   docker run -d --name container1 \

     -v shared_data:/shared \

     nginx:latest

3. 向数据卷中添加文件:

   - 创建一个文件并复制到数据卷中:

   

     echo "This is a shared file" > shared_file.txt

     docker cp shared_file.txt container1:/shared/

4. 启动第二个容器并挂载相同的命名数据卷:

   docker run -d --name container2 \

     -v shared_data:/shared \

     busybox:latest

5. 验证文件是否共享:

   - 进入第二个容器检查文件是否存在:

   

     docker exec -it container2 sh

     cat /shared/shared_file.txt

6. 停止和删除容器:

   docker stop container1 container2

   docker rm container1 container2

7. 重新启动容器并挂载相同的命名数据卷:

   docker run -d --name container1 \

     -v shared_data:/shared \

     nginx:latest

   docker run -d --name container2 \

     -v shared_data:/shared \

     busybox:latest

8. 验证文件是否保留:

   - 进入任意一个容器检查文件是否仍然存在:

   

     docker exec -it container1 sh

     cat /shared/shared_file.txt

解释

docker volume create shared_data:创建一个名为 shared_data的命名数据卷。

-v shared_data:/shared:将命名数据卷 shared_data 挂载到容器内的 /shared目录。

docker cp:将本地文件复制到容器内的指定目录。

docker exec -it:进入容器并检查文件是否存在。

docker stop 和 docker rm:停止并删除容器,但命名数据卷中的文件仍然保留。

重新启动容器:再次启动容器时,使用相同的命名数据卷,文件仍然存在。

http://www.yayakq.cn/news/304138/

相关文章:

  • 如何免费推广自己的网站昆明做网站优化公司
  • 中山企业网站推广公司WordPress食物模板
  • 网上购物网站设计开发公司名称推荐
  • 商城网站的开发怎么做手机版网站开发工具
  • 企业网站建立答辩问题纵横天下营销型网站建设
  • 小型IT网站开发公司网站内容 内链
  • 网站如何做熊掌号通辽做网站0475seo
  • 做外贸什么网站好检察院网站建设自查报告
  • 微信公众号优惠和网站绑定怎么做益阳市城乡和住房建设部网站
  • 延吉做网站怎么在百度上发布自己的信息
  • 诸暨哪些公司可以制作网站网站索引量突然下降
  • 网站的字体做多大合适wordpress 插件上传
  • 重庆有那些制作网站的公司网站建设时间安排
  • 门户网站开发 系统介绍富阳网站建设价格
  • 高校学生红色网站建设查找全国免费网站建设
  • 网站设计实训报告珠海发布最新通告
  • 建站最便宜的平台UE4做购物网站
  • 上海工商网站建筑公司网站建设
  • 注册公司代理记账费用昆明做网站优化的公司
  • it企业网站模板下载网站建设服务器端软件
  • 正能量不良网站进入窗口免费阅读黑龙江建设网安管人员管理系统
  • 网站开设作风建设专栏射击游戏网页版
  • 松江建设新城有限公司网站广告设计与制作专业怎么样
  • 鄂州网站制作企业环保网站模板代码
  • 建设银行个人网站登陆营销策划推广
  • 做游戏ppt下载网站万秀服务不错的seo推广
  • 普通网站建设多少钱银川网站建设设计
  • 怎么做网站投票选举成都网站建设源码世纪
  • 网站架构分析工具注册资金写100万后悔
  • 公司网站开发费算什么费用门户网站建设招标方