东莞网站优化公司哪家好建设银行网站怎么基本转个人

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

东莞网站优化公司哪家好,建设银行网站怎么基本转个人,网站里怎样添加关键词,百度官网下载docker数据卷#xff08;数据挂载#xff09;持久化 一、docker对于数据的管理二、docker挂载主机目录—指定路径挂载三、docker使用数据卷Volume挂载四、数据共享–数据卷容器五、备份和恢复 docker的镜像是由多个只读的文件系统叠加在一起形成的。当我们在我启动一个容器的… docker数据卷数据挂载持久化 一、docker对于数据的管理二、docker挂载主机目录—指定路径挂载三、docker使用数据卷Volume挂载四、数据共享–数据卷容器五、备份和恢复 docker的镜像是由多个只读的文件系统叠加在一起形成的。当我们在我启动一个容器的时候docker会加载这些只读层并在这些只读层的上面(栈顶)增加一个读写层。这时如果修改正在运行的容器中已有的文件那么这个文件将会从只读层复制到读写层。该文件的只读版本还在只是被上面读写层的该文件的副本隐藏。当删除docker,或者重新启动时之前的更改将会消失。在Docker中只读层及在顶部的读写层的组合被称为Union File System联合文件系统。 一、docker对于数据的管理 两种方式 数据卷Volumes挂载主机目录Bind mounts 为了很好的实现数据保存和数据共享Docker提出了Volume这个概念简单的说就是绕过默认的联合文件系统而以正常的文件或者目录的形式存在于宿主机上。又被称作数据卷。 数据卷是一个可供一个或多个容器使用的特殊目录它绕过UFS,可以提供很多有用的特性 数据卷可以在容器之间共享和重用对数据卷的修改会立马生效对数据卷的更新不会影响镜像数据卷默认会一直存在即使容器被删除 Docker中提供了两种挂载方式-v和-mount。 下面展开介绍。 二、docker挂载主机目录—指定路径挂载 格式 docker run -it –name c1 -v /宿主机目录:/docker目录 -d imagename –name 为容器起名字 -p宿主机端口docker端口 端口映射 -v宿主机目录docker目录 必须为绝对路径 如 docker run -it –name xxxx -p 8888:8888 -v /my:/docker -d imagename/my宿主机目录 /docker容器的数据目录 三、docker使用数据卷Volume挂载 匿名挂载具名挂载指定路径挂载的命令区别如下 -v 容器内路径 #匿名挂载 -v 卷名:容器内路径 #具名挂载 -v /宿主机路径:容器内路径 #指定路径挂载 1.创建数据卷 docker volume create my-vol2.查看所有的数据卷 \( docker volume ls local my-vol 3.查看指定数据卷的信息 \) docker volume inspect my-vol [ { Driver: local, Labels: {}, Mountpoint: /var/lib/docker/volumes/my-vol/_data, Name: my-vol, Options: {}, Scope: local } ] 4.删除数据卷 docker volume rm … \( docker volume rm my-vol 5.删除容器之时删除相关的卷 \) docker rm -v … 数据卷是被设计用来持久化数据的它的生命周期独立于容器Docker 不会在容器被删除后自动删除数据卷并且也不存在垃圾回收这样的机制来处理没有任何容器引用的数据卷 。如果需要在删除容器的同时移除数据卷。可以在删除容器的时候使用 docker rm -v 这个命令。 *无主的数据卷可能会占据很多空间要清理请使用以下命令 \( docker volume prune6.使用数据卷来挂载 具名挂载匿名挂载 1匿名挂载-v 容器内路径 docker run -it -p 33063306 \ --name mysql \ -v /var/lib/mysql \ -d mysql:8.0.21当你docker volume ls会看到如下 local c5ed47ea84c7ccb620d97a2cfecdcfb8944720526afc7295e5bb26023dada859匿名 这种数据都是匿名挂载的因为 我们在 -v 挂载数据卷的时候 没有指定 容器外的路径。 2具名挂载docker -v 卷名:容器内路径 docker run -it -p 33063306 \ --name mysql \ -v mysql_volume:/var/lib/mysql \ -d mysql:8.0.21当你docker volume ls会看到如下 DRIVER VOLUME NAME local mysql_volume(具名挂载) mysql_volume就是我的数据卷名它在docker默认位置。 7.使用 --mount创建数据卷 挂载一个主机目录作为数据卷。 使用 --mount 标记可以指定挂载一个本地主机的目录到容器中去。 \) docker run -it -p 33063306
–name mysql

-v /src/mysql:/var/lib/mysql

–mount typebind,source/src/mysql,target/var/lib/mysql
-d mysql:8.0.21上面的命令挂载主机的/src/mysql目录到容器的/var/lib/mysql目录。用户可以放置一些程序到本地目录中来查看容器是否正常工作。本地目录的路径必须是绝对路径如果目录不存在 Docker 会自动为你创建它。 8.Docker 挂载主机目录的默认权限是读写 用户也可以通过添加readonly 参数指定为只读 。 $ docker run -it -p 33063306
–name mysql

-v /src/mysql:/var/lib/mysql

–mount typebind,source/src/mysql,target/var/lib/mysql,readonly
-d mysql:8.0.21加了readonly之后就挂载为只读了。如果你在容器内/src/mysql目录新建文件会显示如下错误 /src/mysql # touch new.txt touch: new.txt: Read-only file system小结 平时使用的时候 尽量使用 指定路径挂载和 具名挂载 -v /容器内路径 匿名挂载 -v 卷名:/容器内路径 具名挂载 -v /宿主机路径:/容器内路径 指定路径挂载 数据卷权限 -v 容器内路径:ro Readonly 只读 -v 容器内路径:rw Readwrite 可读可写 默认是可读可写
四、数据共享–数据卷容器 如果我们有一些持续更新的数据需要在容器之间共享,最好创建数据卷容器。     常见的使用场景是使用纯数据容器来持久化数据库、配置文件或者数据文件等。 数据卷容器其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的。 数据共享 如果想要实现容器间的数据共享那么需要授权一个容器访问另一个容器的Volume。我们可以在使用docker run时使用-volumes-from参数来进行指定。 如docker run -it -h NEWCONTAINER –volumes-from shanlei-nginx ubuntu /bin/bash 注意值得注意的是不管shanlei-nginx是否运行它都会起作用。只要有容器连接Volume它就不会被删除。 1.首先我们需要先创建一个数据卷容器 docker run -d -v /dbdata –name dbdata mysql:8.0.21 echo Data-only container for mysql2.然后通过–volumes-from指令参数来挂载 dbdata 容器中的数据卷。 docker run -d –volumes-from dbdata –name data1 mysql:8.0.21也可以使用多个 –volumes-from 参数来从多个容器挂载多个数据卷。也可以从其他已经挂载了数据卷的容器来挂载数据卷。 docker run -d –name data3 –volumes-from data1 mysql:8.0.213.查看数据卷容器是否挂载成功: docker exec -it data1 /bin/bash注意如果删除了挂载的容器(包括 dbdata、data1 和 data2等),数据卷并不会被自动删除。如果要删除一个数据卷,必须在删除最后一个还挂载着它的容器时使用 docker rm -v 命令来指定同时删除关联的容器。 五、备份和恢复 利用数据卷对其中的数据进行进行备份、恢复和迁移。 备份 使用 –volumes-from 标记来创建一个加载 dbdata 容器卷的容器,并从本地主机挂载当前到容器的 /backup 目录。命令如下: docker run –volumes-from dbdata -v \((pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata容器启动后,使用了 tar 命令来将 dbdata 卷备份为本地的 /backup/backup.tar 。 恢复 如果要恢复数据到一个容器,首先创建一个带有数据卷的容器 dbdata2。 docker run -v /dbdata --name dbdata2 ubuntu /bin/bash然后创建另一个容器,挂载 dbdata2 的容器,并使用 untar 解压备份文件到挂载的容器卷中。 docker run --volumes-from dbdata2 -v \)(pwd):/backup busybox tar xvf /backup/backup.tar