【Docker】Docker 如何映射文件

文章目录

  • [1. Docker 如何映射文件](#1. Docker 如何映射文件)
  • [2. 参考资料](#2. 参考资料)

1. Docker 如何映射文件

Docker 映射最大的好处是持久化,比如适合开发时候的mysql数据库。

在启动容器时指定 容器主机 的映射关系,举例如下:

shell 复制代码
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root  \
-d mysql:5.7

以上就把容器的文件夹 var/log/mysql 映射到了主机的 /mydata/mysql/conf等目录。

这种方法最大的优点是在删除容器后,该文件依然存在,下次启动新容器或许依然可以使用而不用重新配置一遍环境和恢复数据,这对需要持久化的容器特别友好,如mysql

举例如下:

  1. 假设,在存在映射的容器 mysql_test 中,创建了 spring_test 数据库

  2. 现在删除 mysql_test 容器(如果不映射那么所有数据库都会被删除)

    shell 复制代码
    docker rm mysql_test
  3. 删除后重新映射源文件到新的容器 mysql_test111 中

    shell 复制代码
    docker run -p 3306:3306 --name mysql_test111 \
    -v /mydata/mysql/log:/var/log/mysql \
    -v /mydata/mysql/data:/var/lib/mysql \
    -v /mydata/mysql/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=root  \
    -d mysql:5.7
  4. 登录发现原来的数据库 spring_test 的数据任然存在,哈哈,体验很棒

2. 参考资料

我的文章:《如何查看一个 Docker 镜像有哪些版本.md

我的文章:《Docker 快速入门实用教程.md

相关推荐
weixin_466812 分钟前
K8S-Deployment
云原生·容器·kubernetes
总有刁民想爱朕ha13 分钟前
银河麒麟v10服务器版Docker部署MySQL 8教程
mysql·docker·容器·银河麒麟v10
卜锦元21 分钟前
docker 部署南大通用 GBase 8sV8.8
运维·数据库·docker·容器·部署·运维开发
Garfield200523 分钟前
查找Docker 容器占用的磁盘空间
docker·容器·键盘
宋冠巡24 分钟前
Docker容器化Node.js应用教程
docker·node.js
科技D人生33 分钟前
Kubernetes 学习总结(47)—— Kubernetes 持久化存储之 Volume、PV、PVC、StorageClass 到底怎么用?
云原生·容器·kubernetes·k8s·k8s 数据卷
CappuccinoRose38 分钟前
Docker配置过程完整梳理
后端·python·docker·容器·环境配置
没有bug.的程序员1 小时前
K8s 环境中的 JVM 调优实战
java·jvm·spring·云原生·容器·kubernetes
草明1 小时前
MacOS 在使用 docker: no space left on device: unknown
macos·docker
一条懒鱼66613 小时前
K8S-特殊容器
云原生·容器·kubernetes