35.Docker-数据卷,目录挂载

**注意:**在容器内修改文件是不推荐的。

1.修改不方便,比如vi命令都无法使用。

2.容器内修改,没有日志记录的。

**问题:**那应该如何修改容器中的文件呢?

数据卷

volume是一个虚拟目录,指向宿主机文件系统中的某个目录。

数据卷的作用

将容器和数据分离,解耦合,方便操作容器内的数据,保证数据安全。

数据卷的命令

docker volume 命令的使用

创建数据卷命令:

docker volume create 数据卷名称

列出所有的数据卷命令:

docker volume ls

查看某个数据卷的命令:

docker volume inspect 数据卷名称

删除没有使用的数据卷命令:

docker volume prune

删除指定名称的数据卷命令:

docker volume rm 数据卷名称

将数据卷挂载到容器中

通过-v参数来挂载

docker volume create html

docker volume ls

docker volume inspect html

docker run --name mynginx -p 8080:80 -d -v html:/usr/share/nginx/html nginx

/var/lib/docker/volume/html/_data 映射 nginx容器内部目录 /usr/share/nginx/html

可以发现:目录下多出两个文件,更容器内目录下的文件一样。

这个时候就可以在宿主机目录下方便的对文件进行修改了。

如果容器创建并启动的时候-v指定的数据卷不存在,docker容器很智能,会自动的帮你创建数据卷。

**案例:**创建并运行一个mysql容器,将宿主机目录直接挂载到容器

挂载语法

-v 宿主机目录:容器目录

-v 宿主机文件:容器内文件

java 复制代码
docker run \
-p 13305:3306 \
--name mysql5x \
--privileged=true \
--restart always \
-v /tmp/mysql/conf/xmy.cnf:/etc/mysql/conf.d/xmy.cnf \
-v /tmp/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7.25
相关推荐
梦梦代码精5 小时前
电商系统不是技术堆叠:LikeShop如何用分层Hold住复杂业务?
java·docker·代码规范
云烟成雨TD6 小时前
Kubernetes 系列【4】基础概念
云原生·容器·kubernetes
zhoupenghui1687 小时前
【AI大模型应用开发】【项目实战】13.RAG智慧问答项目-(一)项目介绍&项目架构&项目环境配置
人工智能·docker·ai·milvus·rag·attu·rag智慧问答项目
云烟成雨TD8 小时前
Kubernetes 系列【3】使用 kubeadm 创建 K8s 集群
云原生·容器·kubernetes
qq_349447958 小时前
十二、k8s中prometheus配置文件如何热加载
容器·kubernetes·prometheus
江畔柳前堤9 小时前
第13章:docker生产环境部署实战
运维·git·docker·容器·代码复审
hj28625112 小时前
Docker 容器化技术标准化笔记
java·笔记·docker
潘正翔12 小时前
docker基础_镜像使用
linux·运维·服务器·docker·容器·centos·devops
江湖有缘12 小时前
Lunalytics部署指南:使用Docker快速搭建私有监控面板
运维·docker·容器
分布式存储与RustFS13 小时前
RustFS保姆级教程:Docker快速部署兼容S3的本地对象存储
运维·docker·容器·rustfs部署教程·本地搭建s3对象存储·rustfs网页控制台使用·awscli连接rustfs