详解docker挂载目录常用方式

前言

在Docker中的container挂载新的文件目录,可以通过以下几种方式实现,具体来看看吧。

1. 使用-v参数在容器启动时挂载目录

在启动容器时,可以通过-v参数将宿主机上的目录挂载到容器中。例如,要将宿主机上的/home/user/new_data目录挂载到容器中的/new_data目录,可以使用以下命令:

bash 复制代码
docker run -v /home/user/new_data:/new_data image_name
  • /home/user/new_data:宿主机上的目录路径。
  • /new_data:容器中的目录路径。
  • image_name:要启动的镜像名称。

2. 使用数据卷(Volume)挂载

Docker数据卷是一种可以在多个容器之间共享的特殊目录。可以通过以下步骤创建和使用数据卷:

2.1 创建数据卷
bash 复制代码
docker volume create my_new_volume
2.2 挂载数据卷到容器

在启动容器时,可以使用--mount-v参数将数据卷挂载到容器中。例如:

bash 复制代码
docker run --mount source=my_new_volume,target=/new_data image_name
# 或者
docker run -v my_new_volume:/new_data image_name
  • my_new_volume:创建的数据卷名称。
  • /new_data:容器中的目录路径。
  • image_name:要启动的镜像名称。

3. 修改已运行容器的配置(不推荐)

对于已经运行的容器,通常不推荐直接修改其配置文件来添加挂载目录,因为这可能导致容器状态不稳定或数据丢失。但如果确实需要这样做,可以:

3.1 找到容器配置文件的位置

Docker容器的配置文件通常存储在/var/lib/docker/containers/目录下,每个容器都有一个对应的文件夹。

3.2 修改配置文件

在容器的配置文件中,可以添加新的挂载点配置。但请注意,直接修改配置文件可能导致Docker守护进程重启后配置失效。

4. 使用docker cp命令复制文件到容器中

如果不希望通过挂载的方式将文件目录添加到容器中,也可以使用docker cp命令将文件从宿主机复制到容器中。例如:

bash 复制代码
docker cp /home/user/new_data/file.txt container_name:/new_data/
  • /home/user/new_data/file.txt:宿主机上的文件路径。
  • container_name:容器的名称或ID。
  • /new_data/:容器中的目标目录路径。

小结

推荐在容器启动时通过-v参数或数据卷来挂载新的文件目录。这样可以确保容器与宿主机之间的数据同步和共享,同时保持容器的可移植性和隔离性。如果需要将文件复制到容器中,可以使用docker cp命令。


The end.

相关推荐
DigitalOcean21 小时前
DigitalOcean容器注册表推出多注册表支持功能
容器
江湖有缘1 天前
Jump个人仪表盘Docker化部署教程:从0到 搭建专属导航页
运维·docker·容器
Lam㊣1 天前
Centos 7 系统docker:更换镜像源
linux·docker·centos
挖土机_0081 天前
Kubernetes 1.35 原地扩容(In-Place Pod Resize)完整解析:机制、差异与实战示例
docker·kubernetes
左直拳1 天前
将c++程序部署到docker
开发语言·c++·docker
五仁火烧1 天前
Vue3 项目的默认端口行为
服务器·vue.js·nginx·容器·vue
Anyexyz1 天前
【更新】境内 Docker 镜像状态监控——配置生成,一键复制!
运维·docker·容器
释怀不想释怀1 天前
Docker(网络)
运维·docker·容器
羊羊羊i1 天前
使用Informer监听K8s资源
云原生·容器·kubernetes
VermiliEiz1 天前
二进制文件部署k8s方式(5)
云原生·容器·kubernetes