怎么在网上卖东西教程,seo排名优化技术,西昌市规划建设局网站,丹徒网站建设信息将数据存储在容器中#xff0c;一旦容器被删除#xff0c;数据也会被删除。同时也会使容器变得越来越大#xff0c;不方便恢复和迁移。 将数据存储到容器之外#xff0c;这样删除容器也不会丢失数据。一旦容器故障#xff0c;我们可以重新创建一个容器#xff0c;将数据挂…将数据存储在容器中一旦容器被删除数据也会被删除。同时也会使容器变得越来越大不方便恢复和迁移。 将数据存储到容器之外这样删除容器也不会丢失数据。一旦容器故障我们可以重新创建一个容器将数据挂载到容器里就可以快速的恢复。
存储方式 volume 卷 卷存储在主机文件系统分配一块专有存储区域由 Docker在 Linux 上管理并且与主机的核心功能隔离。非 Docker 进程不能修改文件系统的这一部分。卷是在 Docker 中持久保存数据的最佳方式。bind mount 绑定挂载 绑定挂载可以将主机文件系统上目录或文件装载到容器中但是主机上的非 Docker 进程可以修改它们同时在容器中也可以更改主机文件系统包括创建、修改或删除文件或目录使用不当可能会带来安全隐患。tmpfs 临时挂载 tmpfs挂载仅存储在主机系统的内存中从不写入主机系统的文件系统。当容器停止时数据将被删除。 绑定挂载bind mount
绑定挂载适用以下场景
将配置文件从主机共享到容器。在 Docker 主机上的开发环境和容器之间共享源代码或编译目录。 例如可以将 Maven 的target/目录挂载到容器中每次在主机上用 Maven打包项目时容器内都可以使用新编译的程序包。
-V
绑定挂载将主机上的目录或者文件装载到容器中。绑定挂载会覆盖容器中的目录或文件。
如果宿主机目录不存在docker会自动创建这个目录。但是docker只自动创建文件夹不会创建文件。
例如mysql的配置文件和数据存储目录使用主机的目录。可以将配置文件设置为只读read-only防止容器更改主机中的文件。
docker run -e MYSQL_ROOT_PASSWORD123456 \-v /home/mysql/mysql.cnf:/etc/mysql/conf.d/mysql.cnf:ro \-v /home/mysql/data:/var/lib/mysql \-d mysql:5.7
--tmpfs 临时挂载
docker run -d -it --tmpfs /tmp nginx:1.22-alpine
volume 卷
卷是docker 容器存储数据的首选方式卷有以下优势
卷可以在多个正在运行的容器之间共享数据。仅当显式删除卷时才会删除卷。当你想要将容器数据存储在外部网络存储上或云提供商上而不是本地时。卷更容易备份或迁移当您需要备份、还原数据或将数据从一个 Docker 主机迁移到另一个 Docker 主机时卷是更好的选择。
创建和挂载卷
docker volume create my-datadocker run -e MYSQL_ROOT_PASSWORD123456 \-v /home/mysql/conf.d/my.cnf:/etc/mysql/conf.d/my.cnf:ro \-v my-data:/var/lib/mysql \-d mysql:5.7 创建nfs卷
docker volume create --driver local \--opt typenfs \--opt oaddr192.168.10.1,rw \--opt device:/path/to/dir \vol-nfs